Method and system for managing robotic process automation

A self-healing mechanism for RPA robots addresses maintenance challenges by using operational metrics and machine learning to optimize workflows, improving reliability and availability, thus enabling wider automation usage.

JP7815479B2Active Publication Date: 2026-02-17BLUE PRISM LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2024568024
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-06-06
Filing Date
2023-06-06
Publication Date
2026-02-17
Estimated Expiration
2043-06-06

AI Technical Summary

Technical Problem

Current RPA systems require significant manual maintenance efforts, leading to high operational costs and potential disruptions, which reduce the reliability and availability of RPA-driven business processes, limiting their use to less critical tasks.

Method used

Implement a self-healing mechanism for RPA robots that acquires operational metrics during workflow execution, determines optimization actions based on policies, and performs automated adjustments using machine learning models to enhance reliability and reduce maintenance needs.

Benefits of technology

The self-healing mechanism reduces manual intervention, enhances RPA robot reliability, and increases availability, allowing for broader automation across various business processes without significant operational overhead.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007815479000001
    Figure 0007815479000001
  • Figure 0007815479000002
    Figure 0007815479000002
  • Figure 0007815479000003
    Figure 0007815479000003
Patent Text Reader

Abstract

Method and system for managing robotic process automation A method (100) for managing a robotic process automation (RPA) robot is provided. The method includes obtaining data related to the operation metrics of the RPA robot during the execution of an automated workflow (S110), and determining an optimization action based on the policies related to the operation metrics of the RPA robot and the obtained data (S120).
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to methods and systems for managing robotic process automation (RPA) inventions. [Background technology]

[0002] Robotic process automation (RPA) is an emerging form of business process automation technology that utilizes software robots or artificial intelligence (AI) workers. In traditional workflow automation tools, software developers use an internal application program interface to generate a list of actions to automate a task. In contrast, RPA systems create the action list by watching a user perform tasks in the application's graphical user interface and then perform the automation by repeating those tasks directly on the graphical user interface. The RPA robot then generates the appropriate input commands for the GUI to cause a computer system to execute a given process. This enables the process to be automated, making the participating process unattended. The advantages of this approach are numerous, including greater scalability, allowing multiple RPA robots to perform the same task across multiple computer systems, and greater repeatability, as the possibility of human error in a given process is reduced or eliminated.

[0003] Organizations that use RPA software, such as software robots (also known as digital workers), must ensure that the software operates correctly during runtime. Any errors that occur during execution must be diagnosed and fixed as quickly as possible. To accomplish this, organizations typically employ staff to monitor performance and detect and fix problems as they occur, which can result in significant operational costs to operate digital workers. Industry-wide statistics show that for every 20 digital workers, companies need to employ, on average, one full-time employee to perform maintenance tasks.

[0004] Not only is the cost of manual maintenance high, but if maintenance is not performed in a timely manner, it can significantly reduce the availability of RPA-driven business processes. Even if certain issues are easy to diagnose and fix, manually detecting these issues or assigning human workers to identify and fix them can take a lot of time. For example, a five-minute fix may only be implemented hours later, when a human worker is available to assess and resolve the issue. Summary of the Invention

[0005] As discussed above, there are many problems associated with currently available techniques for maintaining RPA-driven business processes, such as high operational costs and potential significant disruptions. This means that enterprises significantly reduce their return on investment from RPA or intelligent automation solutions due to the required maintenance costs. This also means that enterprises may limit the use of business automation via software robots to only less critical business processes, which may significantly reduce the number of automatable processes and savings for customer organizations. Therefore, reducing the RPA maintenance effort required by customer organizations and increasing the reliability and availability of RPA-driven software robots are desirable objectives.

[0006] The embodiments described herein are directed to methods and systems for managing robotic process automation (RPA) robots. More specifically, the embodiments described herein relate to techniques that can perform "self-healing," particularly to reduce the maintenance effort required for RPA robots by customer organizations, and to increase the reliability and / or availability of RPA robots.

[0007] According to one aspect of the present disclosure, a computer-implemented method for managing an RPA robot is provided, the method including: acquiring data related to operational metrics of the RPA robot during execution of an automated workflow; and determining optimization actions based on policies related to the operational metrics of the RPA robot and the acquired data.

[0008] According to another aspect of the present disclosure, there is provided a system for managing performance of an RPA robot, the system comprising: an acquiring unit configured to acquire data related to operation metrics of the RPA robot during execution of an automated workflow; and a decision unit configured to determine an optimization action based on a policy related to the operation metrics of the RPA robot and the acquired data.

[0009] According to another aspect of the present disclosure, there is provided a computer-readable storage medium comprising instructions that, when executed by a computer, cause the computer to perform the steps of the methods described herein.

[0010] Optional features are set out in the accompanying dependent claims.

[0011] These and other aspects of the present disclosure will be better appreciated and understood when considered in conjunction with the following description and the accompanying drawings. The following description, while setting forth various embodiments of the present disclosure and numerous specific details thereof, is given by way of example and not limitation. Many substitutions, modifications, additions, or rearrangements may be made within the scope of the present disclosure, and the present disclosure includes all such substitutions, modifications, additions, or rearrangements. [Brief explanation of the drawings]

[0012] Embodiments of the present disclosure will now be described, by way of example only, with reference to the accompanying drawings, in which: [Figure 1] 1 is a flowchart of a computer-implemented method for managing a robotic process automation (RPA) robot, according to an embodiment of the present disclosure; [Figure 2] FIG. 1 is a block diagram of a system for managing the performance of an RPA robot, according to an embodiment of the present disclosure. [Figure 3] FIG. 1 illustrates a topology for RPA robot management, according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0013] In the following description, numerous specific details are set forth to provide a thorough understanding of the embodiments. However, it will be apparent to one skilled in the art that the specific details are not necessary to practice the embodiments. In other instances, well-known materials or methods have not been described in detail to avoid obscuring the present disclosure.

[0014] 1 is a flowchart of a computer-implemented method for managing a robotic process automation (RPA) robot according to an embodiment of the present disclosure. The method described herein may be implemented by a system such as system 200 described with reference to FIG. 2, which may be referred to as a process manager in some implementations. Furthermore, in some implementations, the method may be performed by a client computing device, a network, a server, or a combination thereof, such as client computing device 305, network 310, and server 320, as shown in FIG.

[0015] Method 100 begins at step S110, in which data related to operational metrics of an RPA robot is acquired during execution of an automated workflow. In some embodiments, the acquisition may be performed beginning with the launch of an associated session during execution of the automated workflow, or the acquisition may be triggered by the launch of such a session. In these embodiments, triggering the acquisition may not require any prior knowledge of the specific automated workflow to be executed. In other words, data acquisition may be triggered by the launch of any session, regardless of which automated workflow is to be executed during the session.

[0016] Alternatively, or in addition, the capture may be performed during a particular session, for example, during a session indicated by a user.

[0017] In some embodiments, the acquisition of data related to the RPA robot's operational metrics in step S110 can be based on the definition of the automation workflow. For example, the automation workflow can reference a particular external web service or application that it interacts with, in which case the acquisition of data (e.g., response time) can be based on this particular external web service or application. As another example, a policy associated with the workflow can reference a particular metric in its rules, such as central processing unit (CPU) or memory consumption. In this case, the acquisition of data can be based on the particular metric reference by the policy.

[0018] Data related to operational metrics of the RPA robot can include, for example, at least one of data related to the environment in which the RPA robot executes an automated workflow, data corresponding to a time-stamped sequence of internal stages in the automated workflow, and data related to the status of a current session executed by the RPA robot. The data related to the environment can comprise at least one of metrics related to central processing unit (CPU) usage by the RPA robot, metrics related to graphics processing unit (GPU) usage by the RPA robot, metrics related to memory usage by the RPA robot, metrics related to several applications started by the RPA robot during runtime, metrics related to the RPA robot's connection to applications (e.g., external web services such as web pages or webmail), and metrics related to another runtime process on the same runtime resource as the RPA robot. These metrics can be historical and / or current (real-time) values.

[0019] In some embodiments, obtaining data related to the operation metrics of the RPA robot in step S110 may include at least one of detecting the operation metrics using a sensor, querying a database (directly or indirectly, for example, via a data gateway), querying an operating system, querying an external data source (e.g., an external service that aggregates information about the operation system and / or environment related to the RPA robot), or receiving an event related to the operation metrics that is triggered when a corresponding condition is met. The queried database may be a database that resides on a machine separate from the RPA robot. The query operation may be performed at respective predetermined time intervals.

[0020] Returning to FIG. 1 , in step S120, an optimization action is determined based on the acquired data associated with the policy and the RPA robot's operational metrics. In the context of the present disclosure, an optimization action refers to an action that can optimize the execution of the automated workflow without necessarily affecting or changing the definition of the automated workflow. For example, as described in more detail below, the optimization action may include a message corresponding to the results of the analysis, or more specifically, providing such a message to a user (e.g., via a display). As another example, the optimization action may include an administrative action, such as stopping the execution of the automated workflow by the RPA robot or modifying elements of the environment in which the RPA robot operates. As described in more detail below, these actions may be performed automatically as part of the "optimization action." It will also be understood that in some embodiments, the optimization action may modify the definition of the automated workflow, for example, by updating, adding, or deleting stages in the workflow definition.

[0021] By using one or more policies, end users can control the management of RPA robots, and more specifically, the execution of automated workflows by RPA robots. A policy can be a rule-based policy that dictates corresponding conditions for comparison with operational metrics and actions to be taken based on the results of the comparison between the conditions and the operational metrics. The corresponding conditions can be in the form of a threshold (e.g., CPU usage) or a binary decision (e.g., whether a workflow is running in an infinite loop).

[0022] Alternatively or additionally, policies can dictate optimization goals for RPA robots during the execution of automated workflows. Examples of optimization goals include "complete workload within one hour," "maintain CPU / memory usage within 40% of total available usage," "ensure there are no blocked workflow executions (i.e., hung sessions)," "complete the process within a one-hour time limit based on a service level agreement," etc.

[0023] Additionally, in some embodiments, a policy may relate to more than one type of metric and / or data (e.g., the condition is "memory consumption greater than 60% and stage speed is 3x above baseline"), in which case this data may be historical sensor data (e.g., the condition is "CPU consumption >40% over the last three monitoring periods" or "automation entered into an infinite loop - repeatedly traversing the same subset of stages"). In some embodiments, a policy may also be used in step S110 such that obtaining data related to the RPA robot's operational metrics can be based on the policy. For example, the policy may direct sensors to detect the RPA robot's operational metrics.

[0024] In some embodiments, determining the optimization action in step S120 may include analyzing acquired data related to the operation of the RPA robot during execution of the automated workflow based on a policy for predicting or determining errors, and determining the optimization action based on the results of the policy and the analysis. In these embodiments, the optimization action may include at least one of a message corresponding to the result of the analysis (e.g., an alert indicating that a “hanging bot” has been detected, an alert indicating a sudden increase in exception errors has been detected, or an alert indicating execution is behind schedule, etc.), a recommended action corresponding to the result of the analysis, or an automated action performed by the RPA robot corresponding to the result of the analysis. Analyzing the acquired data may be performed using a deterministic algorithm and / or a first machine learning model. The deterministic algorithm may be associated with combinatorial reasoning and / or planning and scheduling. In the context of this disclosure, a “hanging bot” refers to a digital worker that is unable to proceed with the execution of the next step in a workflow.

[0025] Further, in these embodiments, analyzing acquired data related to the operation of the RPA robot during execution of the automated workflow to predict or determine errors may include predicting or determining at least one of errors in the execution of the automated workflow by the RPA robot and operational parameters to be optimized in the execution of the automated workflow by the RPA robot. In other words, in some embodiments, the analysis may include only predicting or detecting errors in the execution of the automated workflow, in some embodiments, the analysis may include only predicting or detecting operational parameters to be optimized in the execution of the automated workflow, and in some embodiments, the analysis may include both. The predicted or detected operational parameters to be optimized may be related to improving the execution performance of the RPA robot. For example, the execution of the automated workflow may be predicted or detected to be ahead of schedule—in this case, the corresponding operational parameter (to be optimized) may be, for example, the amount of workload assigned to the RPA robot within a certain period of time.

[0026] The predicted or determined error in the execution of the automated workflow by the RPA robot may correspond to anomalous behavior in the execution of the automated workflow. For example, the anomalous behavior may include at least one of the following: an unexpected pause or termination of the automated workflow execution (e.g., the automated process is blocked), an RPA robot operational metric exceeding a corresponding threshold (e.g., CPU usage exceeds 60% of the total available capacity for the last two minutes, or the current rate of memory usage growth will cause the automated process to reach a critical threshold in 30 minutes), an execution error in the automated workflow, or an unexpected output generated by the automated workflow.

[0027] As mentioned above, in some embodiments, the optimization actions can include automated actions performed by an RPA robot, where the automated actions are responsive to the results of the analysis. In these embodiments, the automated action may include at least one of the following: resuming execution of an automated workflow by the RPA robot, postponing or stopping execution of an automated workflow by the RPA robot, changing an element of the environment in which the RPA robot operates, changing an operating parameter of the RPA robot (e.g., a session variable specifying a maximum wait time for an application to respond, or an environment variable specifying the location of an input file, etc.), changing definition parameters of the automated workflow (e.g., a subset of element attributes used during the object identification process) and / or a stage of the automated workflow (if the automated workflow is designed with respect to its internal logic, stages, etc. to allow for such modification), skipping an optional stage of the automated workflow during execution (where an optional stage is designed and pre-labeled as such in the automated workflow and includes any activity that is deemed (e.g., by the process owner) to include related but not required activity, e.g., sending an email to a client after a task is performed or generating a PDF version of a report), requesting a different allocation of central processing unit (CPU) resources, requesting a different allocation of memory resources, requesting extra workload to be performed by the RPA robot, storing information related to the results of the analysis. For example, as described above, analyzing the acquired data may include predicting or detecting that the amount of workload assigned to the RPA robot can be optimized, where in this example the optimization action may include requesting extra workload to be performed by the RPA robot. As another example, changing the definition parameters of the automated workflow may include externally controlling decision logic or wait time elements in the automated workflow.

[0028] As described above, in some embodiments, analyzing the acquired data may be performed using a first machine learning model. The first machine learning model may be trained using at least one of operation metrics of the RPA robot, possible errors in the execution of the automated workflow by the RPA robot, and possible modifications to operation parameters for executing the automated workflow by the RPA robot. The first machine learning model may comprise at least one of a classical ML model (e.g., a model based on linear / logistic regression, a kernel-based model, a model based on decision trees and random forests, etc.) and a deep learning model (e.g., a recurrent neural network, a long short-term memory model, a convolutional neural network, a model employing a transformer architecture, etc.).

[0029] 1 , in some embodiments, method 100 may further include storing information including at least one of the following: acquired data related to operation metrics of the RPA robot, predicted or determined errors in the execution of the automated workflow, predicted or determined operation parameters to be optimized in the execution of the automated workflow, and determined optimization actions. Following storing the information, the method may further include training a first machine learning model based on the stored information.

[0030] 1 , in some embodiments, method 100 may further include detecting execution of the automated workflow by the RPA robot. In these embodiments, obtaining data related to operation metrics of the RPA robot during execution of the automated workflow in S110 may be performed after detecting execution of the automated workflow or may be performed upon detecting execution of the automated workflow. Furthermore, in these embodiments, the method may further include obtaining a policy after detecting execution of the automated workflow by the RPA robot, the policy corresponding to the RPA robot and / or the automated workflow.

[0031] 1 , in some embodiments, method 100 may further include receiving at least one of the following: user input to enable or disable automatic execution of the determined optimization action, user input to confirm or reject the determined optimization action, user input to agree or disagree with the predicted or determined error and / or the operating parameters to be optimized, user input to provide alternatives to the predicted or determined error and / or the operating parameters to be optimized, user input to agree or disagree with the determined optimization action, user input to provide alternatives to the determined optimization action, user input indicating user feedback after execution of the optimization action (e.g., responses to “Was the problem accurately diagnosed?” and / or “Was the problem sufficiently resolved?”). Method 100 may also include performing the optimization action, which in some embodiments may be performed only if user input enabling automatic execution of the determined optimization action, and / or user input confirming the determined optimization action, and / or user input agreeing with the predicted or determined error, and / or the operating parameters to be optimized, and / or user input agreeing with the determined optimization action is received.

[0032] The method 100 may further include storing user input for confirming or rejecting the determined optimization action, and / or for agreeing or disagreeing with the predicted or determined error and / or operating parameters to be optimized, and / or for providing alternatives to the predicted or determined error and / or operating parameters to be optimized, and / or for agreeing or disagreeing with the determined optimization action, and / or for providing alternatives to the determined optimization action, and / or providing user feedback after performance of the optimization action, and training the first machine learning model based on the stored user input and / or user feedback.

[0033] In some embodiments, method 100 may further include using the first machine learning model to determine an effectiveness score for the determined optimization action. The effectiveness score may be determined based on at least one of the following: a binary result (i.e., whether the optimization action addresses the predicted or determined error, e.g., whether the software robot is able to resume execution), a numerical performance metric (e.g., a metric indicating the extent to which the predetermined or determined error was addressed, such as the difference between current CPU usage and a target level after the optimization action is executed, or the difference between a new expected completion time to a target service level agreement (SLA) completion time), or a subjective user rating (e.g., indicating how satisfied a user is with the optimization action, e.g., on a scale of 1 to 10).

[0034] As described above, in some embodiments, the policy (used in step S120 to determine the optimization action) can determine an optimization goal for the RPA robot during execution of the automated workflow. In these embodiments, determining the optimization action in step S120 can be further based on at least one of a deterministic algorithm and a second trained machine learning model. The second trained machine learning model can be trained using at least one of: operational metrics of the RPA robot; operational parameters in the execution of the automated workflow by the RPA robot; or a deterministic algorithm associated with at least one of rule execution, combinatorial optimization, and artificial intelligence (AI) planning and scheduling. More specifically, in some embodiments, the second trained machine learning model can be trained based on data related to the quality of the results of previously performed optimization actions, for example, whether the performed optimization action resolved a detected error. The second machine learning model may comprise at least one of a classical machine learning (ML) model (e.g., a model based on linear / logistic regression, a kernel-based model, a model based on decision trees and random forests, etc.) and a deep learning model (e.g., a recurrent neural network, a long short-term memory (LSTM) model, a convolutional neural network, a model employing a transformer architecture, etc.).

[0035] In some embodiments, acquiring data related to operational metrics of the RPA robot during execution of the automated workflow in step S110 may include acquiring first data associated with a first session in a runtime resource corresponding to the automated workflow. In these embodiments, method 100 may further include acquiring second data associated with operational metrics of the RPA robot during execution of a second automated workflow, the second data being associated with the second session in the runtime resource; and determining an optimization action based on the acquired second data. Further, in these embodiments, acquiring the second data may be triggered by launching the second session. The first and second policies may be the same policy or different policies. It will be understood that triggering the acquisition of the second data does not require any prior knowledge of the particular automated workflow to be executed during the second session.

[0036] 2 is a block diagram of a system for managing the performance of an RPA robot, according to an embodiment of the present disclosure. In some embodiments, the system 200 shown in FIG. 2 may be implemented as a process manager, for example, implemented in a server (e.g., server 320 as described below with reference to FIG. 3). As shown in FIG. 2, the system 200 is provided, comprising an obtaining unit 210 and a determining unit 220.

[0037] The acquisition unit 210 is configured to acquire data related to the operation metrics of the RPA robot during execution of the automated workflow. The acquisition unit 210 may be configured to acquire data when a (new) session is launched while the automated workflow is running. The acquisition unit 210 may be configured to acquire data during a specific session (e.g., indicated by a user). In some embodiments, the acquisition unit 210 may be configured to acquire data related to the operation metrics of the RPA robot based on a definition of the automated workflow. For example, the automated workflow may reference a specific external web service or application that it interacts with. In this case, the acquisition of data (e.g., response time) may be based on this specific external web service or application. As another example, a policy associated with the workflow may reference a specific metric in a rule, such as CPU or memory consumption. In this case, the acquisition of data may be based on this specific metric referenced by the policy.

[0038] Data related to operational metrics of an RPA robot may comprise, for example, at least one of the following: data related to the environment in which the RPA robot executes an automated workflow, data corresponding to a time-stamped sequence of internal stages in the automated workflow, and data related to the status of a current session executed by the RPA robot. The data related to the environment may include at least one of the following: metrics related to CPU usage by the RPA robot, metrics related to GPU usage by the RPA robot, metrics related to memory usage by the RPA robot, metrics related to the number of applications started by the RPA robot during runtime, metrics related to the RPA robot's connection to applications (e.g., external web services such as web pages or webmail), and metrics related to another runtime process on the same runtime resource as the RPA robot. These metrics may be historical and / or current (real-time) values.

[0039] In some embodiments, the acquisition unit 210 may be configured to acquire data related to the operation metrics of the RPA robot by performing at least one of the following: detecting the operation metrics using a sensor; querying a database (directly or indirectly, e.g., via a data gateway); querying an operating system; querying an external data source (e.g., an external service that aggregates information about the operation system and / or the environment related to the RPA robot); or receiving an event related to the operation metrics that is triggered when a corresponding condition is met. The queried database may be a database residing on a machine separate from the RPA robot. The query operation may be performed at respective predetermined time intervals.

[0040] The determination unit 220 is configured to determine an optimization action based on the policy and the acquired data associated with the operation metrics of the RPA robot. As described above with reference to FIG. 1 , in the context of the present disclosure, an optimization action refers to an action that can optimize the execution of the automated workflow without necessarily affecting or changing the definition of the automated workflow. Nevertheless, in some embodiments, the optimization action can change the definition of the automated workflow, for example, by updating, adding, or removing stages in the workflow definition.

[0041] By using one or more policies, an end user can control the management of an RPA robot, and more specifically, the execution of an automated workflow by the RPA robot. A policy may be a rule-based policy that dictates a corresponding condition for comparison with an operational metric and an action to be performed based on the result of the comparison between the condition and the operational metric. Alternatively or additionally, a policy may determine an optimization goal for the RPA robot during execution of the automated workflow. The corresponding condition may be in the form of a threshold (e.g., a percentage of CPU usage of total available usage) or a binary decision (e.g., whether the workflow is running in an infinite loop). Furthermore, in some embodiments, a policy may include two or more types of metrics and / or data, and this data may be historical sensor data. In some embodiments, a policy may be used by the acquisition unit 210, whereby the acquisition unit 210 is configured to acquire data related to the operational metrics of the RPA robot based on the policy. For example, a policy may dictate a sensor for detecting the operational metrics of the RPA robot.

[0042] In some embodiments, the determination unit 220 may be configured to determine the optimization action by analyzing acquired data related to the operation of the RPA robot during execution of the automated workflow based on a policy for predicting or determining errors, and determining the optimization action based on the results of the policy and the analysis. In these embodiments, the optimization action may include at least one of the following: a message corresponding to the result of the analysis (e.g., an alert indicating that a "hanging bot" has been detected, an alert indicating that a sudden increase in exception errors has been detected, or an alert indicating that execution is behind schedule, etc.), an action recommendation corresponding to the result of the analysis, or an automated action performed by the RPA robot corresponding to the result of the analysis. The determination unit 220 may be configured to analyze the acquired data using a deterministic algorithm and / or a first machine learning model. The deterministic algorithm may include combinatorial reasoning and / or planning and scheduling.

[0043] In these embodiments, the determination unit 220 may be configured to analyze acquired data related to the operation of the RPA robot during execution of the automated workflow to predict or determine at least one of an error in the execution of the automated workflow by the RPA robot and an operational parameter to be optimized in the execution of the automated workflow by the RPA robot. In other words, in some embodiments, the analysis may include only predicting or detecting an error in the execution of the automated workflow, in some embodiments, the analysis may include only predicting or detecting an operational parameter to be optimized in the execution of the automated workflow, and in some embodiments, the analysis may include both. The predicted or detected operational parameter to be optimized may be related to improving the execution performance of the RPA robot. For example, the execution of the automated workflow may be predicted or detected to be ahead of schedule—in this case, the corresponding operational parameter (to be optimized) may be the amount of workload assigned to the RPA robot within a certain period of time.

[0044] The predicted or determined error in the execution of the automated workflow by the RPA robot may correspond to anomalous behavior in the execution of the automated workflow. For example, the anomalous behavior may include at least one of an unexpected pause or termination of the automated workflow execution, an operational metric of the RPA robot exceeding a corresponding threshold, an execution error of the automated workflow, and an unexpected output generated by the automated workflow.

[0045] As described above, the optimization action can include an automated action performed by the RPA robot in some embodiments, where the automated action is responsive to the results of the analysis. In these embodiments, the automated action can include at least one of the following: resuming execution of the automated workflow by the RPA robot, postponing or stopping execution of the automated workflow by the RPA robot, modifying elements of the environment in which the RPA robot operates, modifying operating parameters of the RPA robot, modifying definition parameters and / or stages of the automated workflow (if the automated workflow is designed with respect to its internal logic, stages, etc., to allow for such modifications), skipping any stages of the running automated workflow (if optional stages are designed and pre-labeled as such in the automated workflow), requesting a different allocation of CPU resources, requesting a different allocation of memory resources, requesting a different workload to be performed by the RPA robot, or storing information related to the results of the analysis. For example, as described above, the analysis of the acquired data by the determination unit 220 can include predicting or detecting that the amount of workload assigned to the RPA robot can be optimized; in this example, the optimization action can include requesting extra workload to be performed by the RPA robot. As another example, changing the definition parameters of an automated workflow may include externally controlling decision logic or latency elements in the automated workflow.

[0046] As described above, the determination unit 220 may be configured to analyze the acquired data using a first machine learning model. The first machine learning model may be trained using at least one of operation metrics of the RPA robot, possible errors in the execution of the automated workflow by the RPA robot, and possible modifications to operation parameters for executing the automated workflow by the RPA robot. The first machine learning model may comprise at least one of a classical ML model (e.g., a model based on linear / logistic regression, a kernel-based model, a model based on decision trees and random forests, etc.) and a deep learning model (e.g., a recurrent neural network, a long short-term memory model, a model employing a transformer architecture, etc.).

[0047] In some embodiments, system 200 may further comprise a storage unit configured to store information including at least one of: acquired data related to operation metrics of the RPA robot, predicted or determined errors in the execution of the automated workflow, predicted or determined operation parameters to be optimized in the execution of the automated workflow, and determined optimization actions. Furthermore, in these embodiments, system 200 may further comprise (after the storage unit that stores the information) a training unit configured to train a first machine learning model based on the stored information.

[0048] In some embodiments, system 200 may further comprise a detection unit configured to detect execution of an automated workflow by the RPA robot. In these embodiments, acquisition unit 210 may be configured to acquire data related to operation metrics of the RPA robot during execution of the automated workflow only after detection of execution of the automated workflow by the detection unit or only upon detection of execution of the automated workflow by the detection unit. Furthermore, in these embodiments, acquisition unit 210 may be configured to acquire a policy after detection unit detects execution of the automated workflow by the RPA robot, the policy corresponding to the RPA robot and / or the automated workflow.

[0049] 2 , in some embodiments, system 200 may further comprise a receiving unit configured to receive at least one of the following: a user input for enabling or disabling automatic execution of the determined optimization action, a user input for confirming or rejecting the determined optimization action, a user input for agreeing or disagreeing with the predicted or determined error and / or the operating parameters to be optimized, a user input for providing alternatives to the predicted or determined error and / or the operating parameters to be optimized, a user input for agreeing or disagreeing with the determined optimization action, a user input for providing alternatives to the determined optimization action, and a user input indicating user feedback after execution of the optimization action. System 200 may further comprise an execution unit configured to execute the optimization action, and in some embodiments, the execution may be performed by the execution unit only if a user input enabling automatic execution of the determined optimization action, and / or a user input confirming the determined optimization action, and / or a user input agreeing with the predicted or determined error, and / or the operating parameters to be optimized, and / or a user input agreeing with the determined optimization action is received.

[0050] In some embodiments, system 200 may further comprise a storage unit configured to store user inputs for confirming or rejecting the determined optimization action, and / or for agreeing or disagreeing with the predicted or determined error and / or operating parameters to be optimized, and / or for providing alternatives to the predicted or determined error and / or operating parameters to be optimized, and / or for agreeing or disagreeing with the determined optimization action, and / or for providing alternatives to the determined optimization action, and / or user feedback after the optimization action is performed. In these embodiments, system 200 may further comprise a training unit configured to train the first machine learning model based on the stored user input and / or user feedback. The storage unit and / or training unit in these embodiments may be the same storage unit and / or training unit as described in the above embodiments.

[0051] In some embodiments, the determining unit 220 may be further configured to determine, using the first machine learning model, an effectiveness score for the determined optimization action. The effectiveness score may be determined based on at least one of a binary result (i.e., whether the optimization action addresses the predicted or determined error, e.g., whether the software robot is able to resume execution), a numerical performance metric (e.g., a metric indicating the extent to which the predetermined or determined error has been addressed, such as the difference between the current CPU usage and a target level after the optimization action has been executed, or the difference between a new expected completion time and a target service level agreement (SLA) completion time), or a subjective user rating (e.g., indicating how satisfied the user is with the optimization action, e.g., on a scale of 1 to 10).

[0052] As described above, in some embodiments, the policy (used by the determination unit 220 to determine the optimization action) can dictate the optimization goal of the RPA robot during execution of the automated workflow. In these embodiments, the determination unit 220 can be configured to determine the optimization action further based on at least one of a deterministic algorithm and a second trained machine learning model. The second trained machine learning model can be trained using at least one of the following: operational metrics of the RPA robot; operational parameters in the execution of the automated workflow by the RPA robot; and a deterministic algorithm related to at least one of rule execution, combinatorial optimization, AI planning, and scheduling. More specifically, in some embodiments, the second trained machine learning model can be trained based on data related to the quality of the results of previously performed optimization actions, for example, whether the performed optimization action resolved a detected error. The second machine learning model may comprise at least one of a classical machine learning model (e.g., a linear / logistic regression-based model, a kernel-based model, a decision tree and a random forest-based model, etc.) and a deep learning model (e.g., a recurrent neural network, a long short-term memory (LSTM) model, a convolutional neural network, a model employing a transformer architecture, etc.).

[0053] In some embodiments, the acquisition unit 210 may be configured to acquire data related to operational metrics of the RPA robot during execution of an automated workflow by acquiring first data related to a first session in a runtime resource corresponding to the automated workflow. In these embodiments, the acquisition unit 210 may be further configured to acquire second data related to operational metrics of the RPA robot during execution of a second automated workflow, the second data related to a second session in the runtime resource. Further, in these embodiments, the determination unit 220 may be configured to determine a new optimization action based on the second policy and the acquired second data. The acquisition unit 210 may be configured to acquire the second data when triggered by the second session being initiated. The first and second policies may be the same policy or different policies.

[0054] In some embodiments, system 200 may be provided as an external component of an automated workflow. Thus, in at least these embodiments, system 200 is non-intrusive and does not require internal modifications of the RPA robot and / or automated workflow to monitor and / or control them. System 200 can utilize already available interfaces (e.g., sensors and / or actuators) to obtain relevant data (i.e., data related to the RPA robot's operational metrics during execution of the automated workflow) and / or to influence automation execution (i.e., by performing optimization actions). Furthermore, in this manner, system 200 can be configured to enable organizations that execute multiple processes (e.g., business-related automated workflows) with different RPA robots across different runtime resources to direct whether system 200's functionality is applied in a given runtime resource.

[0055] 3 illustrates a topology for RPA robot management according to one embodiment of the present disclosure. Topology 300 may include a client computing device 305 and a server 320 configured to be communicatively coupled via a network 310.

[0056] Network 310 may be a wired or wireless network, such as the Internet, an intranet, a local area network (LAN), a wide area network (WAN), a near-field communication (NFC) network, Bluetooth, infrared, radio frequency, cellular network, or another type of network. It will be understood that network 310 may be a combination of multiple different types of wired or wireless networks.

[0057] Each client computing device 305 may be a smartphone, tablet computer, laptop computer, computer, personal data assistant, or any other type of mobile device having a hardware processor configured to process instructions and connected to one or more portions of network 310. Each client computing device 305 may have a graphical user interface configured to allow a user to interact with the processor of the client computing device 305.

[0058] Server 320 may comprise a physical computing device residing at a particular location or may be deployed in a cloud computing network environment. For purposes of this disclosure, "cloud computing" may be defined as a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned through virtualization, released with minimal management effort or service provider interaction, and then scaled accordingly. The cloud model may be comprised of various characteristics (e.g., on-demand self-service, broad network access, resource pooling, rapid elasticity, metered service, etc.), service models (e.g., Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS), and deployment models (e.g., private cloud, community cloud, public cloud, hybrid cloud, etc.). The server 320 may include any combination of one or more computer usable or computer readable media. In some embodiments, the server 320 may be configured to manage RPA robots. For example, the server 320 may perform at least a portion of the method 100, as described above with reference to FIG. 1.

[0059] It will be appreciated that this description is by way of example only and that changes and modifications can be made to the described embodiments without departing from the scope of the present disclosure as defined in the claims.

[0060] While the present technology has been described in detail for purposes of illustration based on what are currently considered to be the most practical and preferred embodiments, it should be understood that such detail is for that purpose only and that the present technology is not limited to the disclosed embodiments, but on the contrary, is intended to cover modifications and equivalent arrangements within the scope of the appended claims. For example, it should be understood that the present technology contemplates that, to the extent possible, one or more features of any implementation can be combined with one or more features of any other implementation.

[0061] Throughout this specification, a reference to "one embodiment," "an embodiment," "an example," or "an example" means that a particular feature, structure, or characteristic described in connection with an embodiment or example is included in at least one embodiment of the present invention. Thus, the appearances of the phrases "in one embodiment," "in an embodiment," "an example," or "an example" in various places throughout this specification do not necessarily all refer to the same embodiment or example. Furthermore, particular features, structures, or characteristics may be combined in any suitable combinations and / or subcombinations in one or more embodiments or examples. Additionally, it is understood that the drawings provided herein are for purposes of explanation to persons skilled in the art, and that the drawings are not necessarily drawn to scale.

[0062] Embodiments according to the present disclosure may be embodied as an apparatus, a method, or a computer program product. For example, in some embodiments, a computer program product may be provided that includes instructions that, when executed by a processor, cause the processor to perform the method described with respect to FIG. 1 . As another embodiment, a computer-readable storage medium may be provided that includes instructions that, when executed by a computer, cause the computer to perform the method steps described in FIG. 1 . Accordingly, the present embodiments may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.), or an embodiment combining software and hardware aspects, all of which may be generally referred to herein as a “module” or “system.” Furthermore, embodiments of the present disclosure may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium.

[0063] Although described in connection with an exemplary computing system environment, embodiments of the present disclosure are capable of operation with numerous other general-purpose or specialized computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations that may be suitable for use with aspects of the present disclosure include, but are not limited to, mobile computing devices, personal computers (e.g., desktop computers), server computers, handheld or laptop devices, multiprocessor systems, game consoles, microprocessor-based systems, set-top boxes, programmable consumer electronics, mobile phones, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.

[0064] Any combination of one or more computer usable or computer readable media may be utilized. For example, the computer readable medium may include one or more of a portable computer diskette, a hard disk, a random access memory (RAM) device, a read-only memory (ROM) device, an erasable programmable read-only memory (EPROM or flash memory) device, a portable compact disc read-only memory (CDROM), an optical storage device, and a magnetic storage device. Computer program code for carrying out operations of embodiments of the present disclosure may be written in any combination of one or more programming languages.

[0065] The flowcharts and block diagrams illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of code, comprising one or more executable instructions for implementing the specified logical function(s). It should also be noted that each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs the specified functions or operations, or a combination of dedicated hardware and computer instructions. These computer program instructions may be stored on a computer-readable medium that can instruct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored on the computer-readable medium generate an article of manufacture including instruction means that implement the functions / operations specified in the flowcharts and / or block diagrams.

[0066] Below is a list of embodiments of the present disclosure. 1. Robotic Process Automation (RPA), a computer-implemented method for managing a robot, comprising: capturing data related to the operational metrics of the RPA robot during execution of the automation workflow; determining optimization actions based on policies and acquired data related to the RPA robot's operational metrics; A method having the following. 2. Determining the optimization action includes: analyzing the acquired data related to the operation of the RPA robot during the execution of the automation workflow based on a policy to predict or determine errors; determining optimization actions based on the policy and analysis results; 2. The method of embodiment 1, comprising: 3. The method of embodiment 2, wherein the step of analyzing acquired data related to the operation of the RPA robot during execution of the automated workflow to predict or determine errors includes predicting or determining at least one of errors in the execution of the automated workflow by the RPA robot, and operational parameters to be optimized in the execution of the automated workflow by the RPA robot. 4. The method of embodiment 3, wherein the predicted or determined error in the execution of the automated workflow by the RPA robot corresponds to abnormal behavior in the execution of the automated workflow. 5. Abnormal behavior is An Automation workflow execution pauses or terminates unexpectedly, RPA robot operation metrics that exceed the corresponding thresholds, Automation workflow execution errors, Unexpected output generated by automation workflows, 5. The method of embodiment 4, comprising at least one of: 6. A method described in any one of embodiments 2 to 5, wherein the optimization action includes at least one of a message corresponding to the results of the analysis, an action recommendation corresponding to the results of the analysis, and an automated action performed by the RPA robot corresponding to the results of the analysis. 7. The method of embodiment 6, wherein the automated action includes at least one of: resuming execution of the automated workflow by the RPA robot, postponing or stopping execution of the automated workflow by the RPA robot, changing elements of the environment in which the RPA robot operates, changing operating parameters of the RPA robot, changing definition parameters and / or stages of the automated workflow, skipping optional stages of the automated workflow during execution, requesting a different allocation of central processing unit (CPU) resources, requesting a different allocation of memory resources, requesting a different workload to be performed by the RPA robot, and storing information related to the results of the analysis. 8. The method of any one of embodiments 2 to 7, wherein analyzing the acquired data includes analyzing the acquired data using at least one of a deterministic algorithm and a first machine learning model. 9. The method of embodiment 8, wherein the first machine learning model is pre-trained using at least one of: operational metrics of the RPA robot; possible errors in the execution of the automated workflow by the RPA robot; and possible modifications to operational parameters for the execution of the automated workflow by the RPA robot. 10. The method further comprises storing information, the information comprising: Data obtained relating to the operational metrics of the RPA robot, predicted or determined errors in the execution of automated workflows; predicted or determined operating parameters to be optimized in the execution of an automated workflow; The optimization actions determined, training a first machine learning model based on the stored information; 10. The method according to embodiment 8 or embodiment 9, comprising at least one of: 11. The method of any one of the preceding embodiments, wherein the method further comprises detecting execution of an automated workflow by the RPA robot, and wherein acquiring data related to operational metrics of the RPA robot during execution of the automated workflow is performed subsequent to detecting execution of the automated workflow. 12. The method of claim 11, wherein the method further comprises, after detecting execution of the automated workflow by the RPA robot, obtaining the policy, the policy corresponding to the RPA robot and / or the automated workflow. 13. The method of any one of the preceding embodiments, wherein obtaining data related to operational metrics of the RPA robot is based on the policy. 14. User input for enabling or disabling automatic execution of the determined optimization action; user input for confirming or rejecting the determined optimization action; user input for agreeing or disagreeing with the predicted or determined error and / or the operating parameters to be optimized; user input for providing alternatives to the predicted or determined error and / or the operating parameters to be optimized; user input for providing alternatives to the determined optimization action; user input indicating user feedback after execution of the optimization action; 10. A method according to any one of the preceding embodiments, further comprising receiving at least one of: 15. The method of any one of the preceding embodiments, wherein the method further comprises performing the optimization action. 16. A method according to embodiment 15 when dependent on embodiment 14, wherein performing the optimization action is performed only when a user input enabling automatic execution of the determined optimization action and / or a user input confirming the determined optimization action is received, and / or a user input agreeing with the predicted or determined error and / or the operating parameters to be optimized is received, and / or a user input agreeing with the determined optimization action is received. 17. The method of any one of embodiments 14-16, when dependent on any one of embodiments 8-10, further comprising: storing user inputs for confirming or rejecting the determined optimization action, and / or for agreeing or disagreeing with the predicted or determined error and / or operating parameters to be optimized, and / or for providing alternatives to the predicted or determined error and / or operating parameters to be optimized, and / or for agreeing or disagreeing with the determined optimization action, and / or for providing alternatives to the determined optimization action, and / or for providing user feedback after execution of the optimization action; training a first machine learning model based on the stored user input and / or user feedback; A method having the following. 18. The method of any one of embodiments 8 to 10, or any one of embodiments 14 to 17 when dependent on any one of embodiments 8 to 10, further comprising using a first machine learning model to determine an effectiveness score for the determined optimization action. 19. A method according to any one of the preceding embodiments, wherein the policy is a rule-based policy that indicates corresponding conditions to compare with the operational metrics and actions to be taken based on the results of the comparison between the conditions and the operational metrics. 20. A method according to any one of the preceding embodiments, wherein the policy dictates optimization goals for the RPA robot during execution of the automated workflow, and determining the optimization action is further based on at least one of a deterministic algorithm and a second trained machine learning model. 21. The second trained machine learning model is RPA robot operation metrics, Operational parameters for the execution of automated workflows by RPA robots; deterministic algorithms associated with at least one of rule execution, combinatorial optimization, artificial intelligence, planning and scheduling; 21. The method of embodiment 20, wherein the method is trained using at least one of: 22. Obtaining data related to operational metrics of the RPA robot includes: using sensors to detect operational metrics; Querying the database, Querying the operating system, Querying external data sources, receiving an event associated with an operational metric that is triggered when a corresponding condition is met; 10. The method of any one of the preceding embodiments, comprising at least one of: 23. The method of embodiment 22, wherein the policy instructs the sensors to detect the operational metrics of the RPA robot, and acquiring the data associated with the operational metrics is based on the policy. 24. The method of any one of the preceding embodiments, wherein obtaining data related to operational metrics of the RPA robot is based on a definition of the automation workflow. 25. A method according to any one of the preceding embodiments, wherein the data relating to operational metrics of the RPA robot includes at least one of data relating to the environment in which the RPA robot executes an automated workflow, data corresponding to a time-stamped sequence of internal stages within the automated workflow, and data relating to the status of a current session executed by the RPA robot. 26. Data relating to the environment Metrics related to central processing unit (CPU) usage by RPA robots, Metrics related to the use of graphics processing units (GPUs) by RPA robots, Metrics related to memory usage by RPA robots, Metrics related to the number of applications started by the RPA robot during its runtime, Metrics related to the connectivity of RPA robots to applications, Metrics related to another runtime process on the same runtime resource as the RPA robot, 26. The method of embodiment 25, comprising at least one of: 27. Acquiring data related to operational metrics of the RPA robot during execution of the automated workflow includes acquiring first data related to a first session at a runtime resource corresponding to the automated workflow, the method comprising: acquiring second data related to operational metrics of the RPA robot during execution of the second automation workflow, the second data related to a second session on the runtime resource; determining an optimization action based on the second policy and the obtained second data; A method having the following. 28. The method of embodiment 27, wherein acquiring the second data is triggered by the second session being launched. 29. A system for managing the performance of a robotic process automation (RPA) robot, comprising: an acquisition unit configured to acquire data related to operation metrics of the RPA robot during execution of the automation workflow; a decision unit configured to determine an optimization action based on the policy and the obtained data related to the operation metrics of the RPA robot; A system comprising: 30. The system of embodiment 29, wherein the system can be provided as an external component of the automated workflow. 31. A computer-readable storage medium comprising instructions that, when executed by a computer, cause the computer to perform the steps of the method of any one of embodiments 1 to 28.

Claims

1. A computer-implemented method (100) for managing a robotic process automation (RPA) robot, comprising: acquiring data relating to operational metrics of the RPA robot during execution of an automated workflow (S110); determining optimization actions based on policies and acquired data related to the operational metrics of the RPA robot (S120); and The optimization action is analyzing the acquired data related to the operational metrics of the RPA robot during execution of the automated workflow based on the policy to predict or determine an error; determining the optimization action based on the policy and the results of the analysis; and the optimization actions include automated actions to be performed by the RPA robot in response to results of the analysis; method.

2. analyzing the acquired data related to the operational metrics of the RPA robot during execution of the automated workflow based on the policy to predict or determine an error, predicting or determining at least one error occurring while the RPA robot is executing the automated workflow and an operational parameter to be optimized while the RPA robot is executing the automated workflow; The method of claim 1.

3. The predicted or determined error while the RPA robot is executing the automated workflow corresponds to abnormal behavior in the execution of the automated workflow, and the abnormal behavior is an unexpected pause or interruption in the execution of the automated workflow, an operational metric of the RPA robot violating a corresponding threshold, an execution error of the automated workflow, an unexpected output generated by the automated workflow; The method of claim 2 , comprising at least one of:

4. The optimization action is: a message corresponding to the results of said analysis; and a recommended action corresponding to the results of said analysis. The method of claim 1 , comprising at least one of:

5. The automatic action is resuming execution of the automated workflow by the RPA robot, postponing or stopping execution of the automated workflow by the RPA robot, changing elements of the environment in which the RPA robot operates, changing operational parameters of the RPA robot, changing definition parameters and / or stages of the automated workflow, skipping optional stages of the automated workflow during execution, requesting a different allocation of central processing unit (CPU) resources, requesting a different allocation of memory resources, requesting a different workload to be performed by the RPA robot, storing information related to the results of the analysis; The method of claim 4 , comprising at least one of:

6. 10. The method of claim 1, wherein analyzing the acquired data comprises analyzing the acquired data using at least one of a deterministic algorithm and a first machine learning model.

7. The method comprises: a user input for enabling or disabling automatic execution of the determined optimization action, a user input for confirming or rejecting the determined optimization action, a user input for agreeing or disagreeing with the predicted or determined error and / or the operating parameters to be optimized, a user input for providing alternatives to the predicted or determined error and / or the operating parameters to be optimized, a user input for agreeing or disagreeing with the determined optimization action, a user input for providing alternatives to the determined optimization action, a user input indicating user feedback after execution of the optimization action; The method of claim 1 , further comprising receiving at least one of:

8. The method of claim 1 , further comprising the step of performing the optimization action.

9. The method of claim 1 , wherein the policy is a rule-based policy that indicates a corresponding condition to compare with the operational metric and an action to be taken based on a result of comparing the condition with the operational metric.

10. 10. The method of claim 1, wherein the policy dictates an optimization goal for the RPA robot during execution of the automated workflow, and determining an optimization action is further based on at least one of a deterministic algorithm and a second trained machine learning model.

11. The step of acquiring data related to operation metrics of the RPA robot during execution of the automation workflow (S110) includes acquiring first data related to a first session in a runtime resource corresponding to the automation workflow, and the method further comprises: acquiring second data related to operational metrics of the RPA robot during execution of a second automated workflow, the second data related to a second session in the runtime resource; determining an optimization action based on a second policy and the obtained second data; 2. The method of claim 1, comprising:

12. A system (200) for managing the performance of a robotic process automation (RPA) robot, comprising: an acquisition unit (210) configured to acquire data related to operational metrics of the RPA robot during execution of an automated workflow; a decision unit (220); Equipped with The determination unit (220) analyzing the acquired data related to the operational metrics of the RPA robot during execution of the automated workflow based on a policy to predict or determine an error; determining an optimization action based on the policy and the results of the analysis; and is configured to perform the optimization actions include automated actions to be performed by the RPA robot in response to results of the analysis; system.

13. The system of claim 12 , wherein the system (200) is capable of being provided as an external component of the automated workflow.

14. A computer-readable storage medium comprising instructions that, when executed by a computer, cause the computer to perform the steps of the method of any one of claims 1 to 11.

Citation Information

Patent Citations

  • Hyper-automation solution system based on artificial intelligence

    KR102392359B1

  • System and method for automating fault detection in multi-tenant environments

    US20210303381A1

  • Anomaly detection and self-healing for robotic process automation via artificial intelligence / machine learning

    WO2022081381A1