diff --git a/src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeFunction.cs b/src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeFunction.cs index ba937d2d..4b8bd099 100644 --- a/src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeFunction.cs +++ b/src/Infrastructure/BotSharp.Core/Routing/RoutingService.InvokeFunction.cs @@ -9,8 +9,17 @@ public partial class RoutingService var function = _services.GetServices().FirstOrDefault(x => x.Name == name); if (function == null) return false; + var originalFunctionName = message.FunctionName; message.FunctionName = name; message.Role = AgentRole.Function; - return await function.Execute(message); + var result = await function.Execute(message); + + // restore original function name + if (!message.StopCompletion) + { + message.FunctionName = originalFunctionName; + } + + return result; } }