From 578362c411dfae9dc43dfe9e350b870099eff5b0 Mon Sep 17 00:00:00 2001 From: hchen Date: Tue, 10 Oct 2023 16:53:04 -0500 Subject: [PATCH] Allow retry 3 times for format response in Routing. --- docs/agent/assets/routing-calling-stack.png | Bin 0 -> 28371 bytes docs/agent/router.md | 20 ++++ .../assets/.$routing-redirection.drawio.bkp | 92 +++++++++++++++++ .../assets/.$routing-redirection.drawio.dtmp | 96 ++++++++++++++++++ docs/architecture/assets/routing-reasoner.png | Bin 0 -> 86361 bytes .../assets/routing-redirection.drawio | 96 ++++++++++++++++++ .../assets/routing-redirection.png | Bin 0 -> 75450 bytes docs/architecture/routing.md | 3 + .../Agents/Services/AgentService.GetAgents.cs | 3 + .../BotSharp.Core/Routing/RouteToAgentFn.cs | 20 ++-- .../RoutingService.GetNextInstruction.cs | 80 ++++++++------- .../Routing/RoutingService.InvokeAgent.cs | 2 +- 12 files changed, 370 insertions(+), 42 deletions(-) create mode 100644 docs/agent/assets/routing-calling-stack.png create mode 100644 docs/architecture/assets/.$routing-redirection.drawio.bkp create mode 100644 docs/architecture/assets/.$routing-redirection.drawio.dtmp create mode 100644 docs/architecture/assets/routing-reasoner.png create mode 100644 docs/architecture/assets/routing-redirection.drawio create mode 100644 docs/architecture/assets/routing-redirection.png diff --git a/docs/agent/assets/routing-calling-stack.png b/docs/agent/assets/routing-calling-stack.png new file mode 100644 index 0000000000000000000000000000000000000000..7d0dfc21cfe7ea40dcd8d35d91fa85af97c92159 GIT binary patch literal 28371 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/architecture/assets/.$routing-redirection.drawio.dtmp b/docs/architecture/assets/.$routing-redirection.drawio.dtmp new file mode 100644 index 00000000..903528a9 --- /dev/null +++ b/docs/architecture/assets/.$routing-redirection.drawio.dtmp @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/architecture/assets/routing-reasoner.png b/docs/architecture/assets/routing-reasoner.png new file mode 100644 index 0000000000000000000000000000000000000000..abee13606549ba4b36486106ed342b7d4e693653 GIT binary patch literal 86361 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 LH5IB+R$>1K!7~D+ literal 0 HcmV?d00001 diff --git a/docs/architecture/assets/routing-redirection.drawio b/docs/architecture/assets/routing-redirection.drawio new file mode 100644 index 00000000..e0b1e1ca --- /dev/null +++ b/docs/architecture/assets/routing-redirection.drawio @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/architecture/assets/routing-redirection.png b/docs/architecture/assets/routing-redirection.png new file mode 100644 index 0000000000000000000000000000000000000000..20e6e9f9d26e3039636c7d52fcbb32ef5ad62f49 GIT binary patch literal 75450 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 (H(X7 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 SMHvMAQIu1at&n~k`hNhvw&Vi< literal 0 HcmV?d00001 diff --git a/docs/architecture/routing.md b/docs/architecture/routing.md index 4ddead4d..a4bbb6ea 100644 --- a/docs/architecture/routing.md +++ b/docs/architecture/routing.md @@ -6,9 +6,12 @@ Routing is an important function that allows multiple Agents to work together to The Routing feature is the core technology used by BotSharp to manage multiple Agents. BotSharp has a built-in intelligent Agent called `Router`. When you enable this function, all user requests will be pre-processed by the Router to determine which Agent to distribute the request to for processing. The advantage of Routing technology is that it can isolate different Agents and allow them to work together to achieve the user's goals. The adoption of `Routing` ensures that Agent can be scalable, flexible and robust enough in enterprise applications. +![routing with reasoning](./assets/routing-redirection.png) + ## Reasoner For simple questions raised by users, the ordinary routing function can already handle it. However, for the scenario where the user has a long description and needs to disassemble the task, ordinary routing cannot handle it. At this time, the `Reasoning` feature needs to be turned on, and LLM will respond according to the problem. The complexity is broken down into different small tasks. These small tasks can be processed by the corresponding Agent. During the processing process, the Router will constantly adjust the next step plan to deal with the different results returned by the Agent. +![routing with reasoning](./assets/routing-reasoner.png) For more **Routing** related information, please go to [Agent Routing](../agent/router.md). \ No newline at end of file diff --git a/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.GetAgents.cs b/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.GetAgents.cs index 8daa6109..755e8213 100644 --- a/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.GetAgents.cs +++ b/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.GetAgents.cs @@ -7,6 +7,9 @@ namespace BotSharp.Core.Agents.Services; public partial class AgentService { +#if !DEBUG + [MemoryCache(10 * 60)] +#endif public async Task> GetAgents() { var query = from a in _db.Agents diff --git a/src/Infrastructure/BotSharp.Core/Routing/RouteToAgentFn.cs b/src/Infrastructure/BotSharp.Core/Routing/RouteToAgentFn.cs index df8209e5..bdba221a 100644 --- a/src/Infrastructure/BotSharp.Core/Routing/RouteToAgentFn.cs +++ b/src/Infrastructure/BotSharp.Core/Routing/RouteToAgentFn.cs @@ -34,20 +34,26 @@ public class RouteToAgentFn : IFunctionCallback } else { + var db = _services.GetRequiredService(); + var targetAgent = db.Agents.FirstOrDefault(x => x.Name.ToLower() == args.AgentName.ToLower()); + if (targetAgent == null) + { + message.ExecutionData = JsonSerializer.Deserialize(message.FunctionArgs); + return false; + } + var missingfield = HasMissingRequiredField(message, out var agentId); if (missingfield && message.CurrentAgentId != agentId) { + // Stack original Agent + _context.Push(targetAgent.Id); + message.CurrentAgentId = agentId; } else { - var db = _services.GetRequiredService(); - var record = db.Agents.FirstOrDefault(x => x.Name.ToLower() == args.AgentName.ToLower()); - if (record != null) - { - message.CurrentAgentId = record.Id; - message.ExecutionResult = $"Routing to {args.AgentName}"; - } + message.CurrentAgentId = targetAgent.Id; + message.ExecutionResult = $"Routing to {args.AgentName}"; } } diff --git a/src/Infrastructure/BotSharp.Core/Routing/RoutingService.GetNextInstruction.cs b/src/Infrastructure/BotSharp.Core/Routing/RoutingService.GetNextInstruction.cs index 636d8cac..28d42523 100644 --- a/src/Infrastructure/BotSharp.Core/Routing/RoutingService.GetNextInstruction.cs +++ b/src/Infrastructure/BotSharp.Core/Routing/RoutingService.GetNextInstruction.cs @@ -18,9 +18,10 @@ public partial class RoutingService var content = $"{prompt} Response must be in JSON format {responseFormat}"; var state = _services.GetRequiredService(); - RoleDialogModel response = default; + var args = new FunctionCallFromLlm(); + if (_settings.UseTextCompletion) { var completion = CompletionProvider.GetTextCompletion(_services, @@ -37,47 +38,58 @@ public partial class RoutingService provider: _settings.Provider, model: _settings.Model); - response = completion.GetChatCompletions(_routerInstance.Router, new List + int retryCount = 0; + + while (retryCount < 3) { - new RoleDialogModel(AgentRole.User, content) - }); + try + { + response = completion.GetChatCompletions(_routerInstance.Router, new List + { + new RoleDialogModel(AgentRole.User, content) + }); + + var pattern = @"\{(?:[^{}]|(?\{)|(?<-open>\}))+(?(open)(?!))\}"; + response.Content = Regex.Match(response.Content, pattern).Value; + args = JsonSerializer.Deserialize(response.Content); + break; + } + catch (Exception ex) + { + _logger.LogError($"{ex.Message}: {response.Content}"); + args.Function = "response_to_user"; + args.Answer = ex.Message; + args.AgentName = _settings.RouterName; + content += "\r\nPlease response in JSON format."; + } + finally + { + retryCount++; + } + } } - var args = new FunctionCallFromLlm(); - try - { #if DEBUG - Console.WriteLine(response.Content, Color.Gray); + Console.WriteLine(response.Content, Color.Gray); #else - _logger.LogInformation(response.Content); + _logger.LogInformation(response.Content); #endif - var pattern = @"\{(?:[^{}]|(?\{)|(?<-open>\}))+(?(open)(?!))\}"; - response.Content = Regex.Match(response.Content, pattern).Value; - args = JsonSerializer.Deserialize(response.Content); - // Sometimes it populate malformed Function in Agent name - if (!string.IsNullOrEmpty(args.Function) && args.Function == args.AgentName) - { - args.Function = "route_to_agent"; - _logger.LogWarning($"Captured LLM malformed response"); - } - - // Another case of malformed response - var agentService = _services.GetRequiredService(); - var agents = await agentService.GetAgents(); - if (string.IsNullOrEmpty(args.AgentName) && agents.Select(x => x.Name).Contains(args.Function)) - { - args.AgentName = args.Function; - args.Function = "route_to_agent"; - _logger.LogWarning($"Captured LLM malformed response"); - } - } - catch (Exception ex) + // Sometimes it populate malformed Function in Agent name + if (!string.IsNullOrEmpty(args.Function) && args.Function == args.AgentName) { - _logger.LogError($"{ex.Message}: {response.Content}"); - args.Function = "response_to_user"; - args.Answer = ex.Message; - args.AgentName = _settings.RouterName; + args.Function = "route_to_agent"; + _logger.LogWarning($"Captured LLM malformed response"); + } + + // Another case of malformed response + var agentService = _services.GetRequiredService(); + var agents = await agentService.GetAgents(); + if (string.IsNullOrEmpty(args.AgentName) && agents.Select(x => x.Name).Contains(args.Function)) + { + args.AgentName = args.Function; + args.Function = "route_to_agent"; + _logger.LogWarning($"Captured LLM malformed response"); } if (args.Arguments != null) diff --git a/src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeAgent.cs b/src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeAgent.cs index 87ef9645..aa1a2523 100644 --- a/src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeAgent.cs +++ b/src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeAgent.cs @@ -62,7 +62,7 @@ public partial class RoutingService response.Role = recursiveResponse.Role; response.Content = recursiveResponse.Content; response.ExecutionResult = recursiveResponse.ExecutionResult; - response.ExecutionData = recursiveResponse.ExecutionData; + response.ExecutionData = recursiveResponse.ExecutionData ?? response.ExecutionData; response.StopCompletion = recursiveResponse.StopCompletion; } }