Method and system for managing robotic process automation
Patent Information
- Application Number
- JP2024568024
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-06-06
- Filing Date
- 2023-06-06
- Publication Date
- 2025-10-21
- Estimated Expiration
- 2043-06-06
AI Technical Summary
Current methods for maintaining RPA-driven business processes are costly and inefficient, leading to reduced availability and increased maintenance efforts, which can limit the use of business automation and reduce the number of automatable processes.
A computer-implemented method and system for managing RPA robots that perform 'self-healing' by obtaining operation metrics data during automated workflows and determining optimization actions based on policies, reducing the need for manual maintenance and enhancing reliability and availability.
The solution reduces maintenance costs and efforts, increases the reliability and availability of RPA robots, and allows for more extensive automation of business processes, thereby improving the return on investment from RPA solutions.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to methods and systems for managing robotic process automation (RPA) inventions.
Background Art
[0002] Robotic process automation (RPA) is a new form of business process automation technology that utilizes software robots or artificial intelligence (AI) workers. In conventional workflow automation tools, software developers use internal application program interfaces to generate a list of actions for automating tasks. In contrast, an RPA system creates an action list by having a user watch tasks being performed in the graphical user interface of an application, and then executes the automation by directly repeating those tasks on the graphical user interface. The RPA robot can then generate the appropriate input commands for the GUI to cause a given process to be executed by a computer system. This enables the automation of processes and turns the processes involved into unmanned processes. There are numerous advantages to such an approach, including greater scalability that allows multiple RPA robots to perform the same tasks across multiple computer systems, and greater reproducibility since the potential for 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. Errors that occur during execution need to be diagnosed and corrected as soon as possible. To achieve this, organizations typically employ staff to monitor outcomes and detect and correct problems when they occur, which can result in significant operating costs for running digital workers. According to industry-wide statistics, for every 20 digital workers, a company needs to hire, on average, one full-time employee to perform maintenance work.
[0004] Not only are the costs of manual maintenance high, but if maintenance is not performed in a timely manner, the availability of RPA-driven business processes can be significantly reduced. Even if it is easy to diagnose and correct specific issues, it can take a lot of time to detect these issues manually or to assign human workers to identify and correct them. For example, a five-minute fix may not be implemented until several hours after a human worker becomes available to evaluate and resolve the problem.
Summary of the Invention
[0005] As described above, there are many problems associated with currently available techniques for maintaining RPA-driven business processes, such as high operating costs and potential significant disruptions. This means that the return on investment from RPA or intelligent automation solutions is significantly reduced due to the maintenance costs required by enterprises. This also means that enterprises may limit the use of business automation via software robots to only less critical business processes, which can significantly reduce the number and savings of automatable processes for customer organizations. Therefore, it is a desired goal to reduce the RPA maintenance effort required by customer organizations and increase the reliability and availability of RPA-driven software robots.
[0006] The embodiments described in this specification 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" and in particular reduce the maintenance effort required for RPA robots by customer organizations, and can enhance 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 includes obtaining data related to the operation metrics of the RPA robot during the execution of an automated workflow; determining an optimization action based on policies related to the operation metrics of the RPA robot and the obtained data.
[0008] According to another aspect of the present disclosure, a system for managing the performance of an RPA robot is provided. The system includes an acquisition unit configured to obtain data related to the operation metrics of the RPA robot during the execution of an automated workflow, and a determination unit configured to determine an optimization action based on policies related to the operation metrics of the RPA robot and the obtained data.
[0009] According to another aspect of the present disclosure, a computer-readable storage medium is provided that includes instructions which, when executed by a computer, cause the computer to execute the steps of the methods described herein.
[0010] Any features are described in the appended dependent claims.
[0011] These and other aspects of the disclosure will be better recognized and understood when considered in conjunction with the following description and the accompanying drawings. The following description shows various embodiments of the disclosure and numerous specific details thereof, given by way of example and not limitation. Many substitutions, modifications, additions, or rearrangements can be made within the scope of the disclosure, and the disclosure includes all such substitutions, modifications, additions, or rearrangements.
Brief Description of the Drawings
[0012] Here, embodiments of the disclosure will be described by way of example only with reference to the accompanying drawings:
Figure 1
Figure 2
Figure 3
Modes for Carrying Out the Invention
[0013] In the following description, numerous specific details are set forth in order to provide a thorough understanding of the embodiments. However, it will be apparent to those skilled in the art that specific details are not required to practice the embodiments. In other instances, well-known materials or methods have not been described in detail to avoid obscuring the disclosure.
[0014] FIG. 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 methods described herein can be implemented by a system such as system 200 described with reference to FIG. 2. This system may be referred to as a process manager in some implementations. Further, in some implementations, the method can be executed 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. 3.
[0015] Method 100 begins at step S110 where data related to the operational metrics of the RPA robot is obtained during the execution of an automated workflow. In some embodiments, the obtaining may start and be executed from the initiation of a related session while the automated workflow is being executed, and the obtaining may be triggered by the initiation of such a session. In these embodiments, the trigger for the obtaining may not require any prior knowledge of the specific automated workflow to be executed. In other words, the obtaining of data can be triggered by the initiation of any session, regardless of which automated workflow is to be executed during the session.
[0016] Alternatively, or in addition, the obtaining can be executed during a particular session, for example, during a session indicated by a user.
[0017] In some embodiments, the acquisition of data related to the operation metrics of the RPA robot in step S110 can be based on the definition of the automation workflow. For example, the automation workflow can refer to a specific external web service or application it interacts with, in which case the acquisition of data (e.g., response time) can be based on this specific external web service or application. As another example, the policy associated with the workflow can refer to specific metrics within the rule, such as central processing unit (CPU) or memory consumption. In this case, the acquisition of data can be based on the reference to specific metrics by the policy.
[0018] Data related to the operation metrics of the RPA robot can include, for example, at least one of data related to the environment in which the RPA robot executes the automation workflow, data corresponding to the timestamped sequence of internal stages in the automation workflow, and data related to the status of the current session executed by the RPA robot. The data related to the environment can include at least one of metrics related to the central processing unit (CPU) usage by the RPA robot, metrics related to the graphics processing unit (GPU) usage by the RPA robot, metrics related to the memory usage by the RPA robot, metrics related to some applications started by the RPA robot during runtime, metrics related to the connection of the RPA robot to an application (e.g., an external web service such as a web page or webmail), and metrics related to another runtime process on the same runtime resources as the RPA robot. These metrics can be historical values 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 sensors, 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 operating system and / or environment related to the RPA robot), and receiving an event related to the operation metrics that is triggered when corresponding conditions are met. The queried database may be a database that exists on a machine separate from the RPA robot. The query operations may be executed at respective predetermined time intervals.
[0020] Returning to FIG. 1, in step S120, an optimization action is determined based on the obtained data associated with the policy and the operation metrics of the RPA robot. In the context of the present disclosure, an optimization action refers to an action that can optimize the execution of an automated workflow without necessarily affecting or changing the definition of the automated workflow. For example, as will be described in more detail below, the optimization action may include a message corresponding to the result of the analysis, or more specifically, providing such a message to the user (e.g., via a display). As another example, the optimization action may include administrative actions such as stopping the execution of the automated workflow by the RPA robot or changing elements of the environment in which the RPA robot operates. As will be described in more detail below, these actions may be automatically executed as part of the "optimization action". Also, it will be understood that in some embodiments, the optimization action can change the definition of the automated workflow, for example, by updating, adding, or deleting stages of the workflow definition.
[0021] By using one or more policies, an end user can control the management of RPA robots, 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 operation metrics and actions to be taken based on the result of the comparison between the conditions and the operation metrics. The corresponding conditions can be in the form of a threshold value (e.g., CPU usage rate), or a binary decision (e.g., whether a workflow is running in an infinite loop).
[0022] Alternatively or additionally, a policy can direct the optimization goals of an RPA robot during the execution of an automated workflow. Examples of optimization goals include "complete the workload within one hour", "maintain CPU / memory usage within 40% of the total available usage", "ensure no blocked workflow execution (i.e., hang session)", "complete the process within the one-hour time limit based on the service level agreement", etc.
[0023] Furthermore, in some embodiments, a policy may be related to two or more types of metrics and / or data (e.g., the condition is "memory consumption exceeding 60% and the speed of the stage exceeding three times the baseline"), and in this case, this data can be historical sensor data (e.g., the condition is "CPU consumption > 40% over the last three monitoring times", or "repeatedly cross the same subset of automation-stages that entered an infinite loop"). In some embodiments, the policy can also be used in step S110 so that data related to the operation metrics of the RPA robot can be obtained based on the policy. For example, the policy can direct a sensor for detecting the operation metrics of the RPA robot.
[0024] In some embodiments, determining the optimization action in step S120 may include analyzing the acquired data related to the operation of the RPA robot during the execution of the automated workflow based on a policy for predicting or determining errors, and determining the optimization action based on the policy and the results of 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, or an alert indicating that the execution is behind schedule), an action recommendation corresponding to the result of the analysis, and an automatic action executed 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 inference and / or planning and scheduling. In the context of the present disclosure, a "hanging bot" refers to a digital worker that cannot proceed with the execution of the next step in the workflow.
[0025] Furthermore, in these embodiments, analyzing the acquired data related to the operation of the RPA robot during the execution of the automated workflow to predict or determine an error may include predicting or determining at least one of an error in the execution of the automated workflow by the RPA robot and an operation parameter to be optimized in the execution of the automated workflow by the RPA robot. In other words, in some embodiments, the analysis can include only predicting or detecting an error in the execution of the automated workflow, in some embodiments, the analysis can include only predicting or detecting an operation parameter to be optimized in the execution of the automated workflow, and in some embodiments, the analysis can include both. The predicted or detected operation parameters to be optimized may be related to improving the execution performance of the RPA robot. For example, it may be predicted or detected that the execution of the automated workflow is before schedule - in this case, the corresponding (operation 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 abnormal behavior in the execution of the automated workflow. For example, the abnormal behavior can include at least one of an unexpected pause or termination of the automated workflow execution (e.g., the automated process is blocked), an operation metric of the RPA robot exceeding a corresponding threshold (e.g., the CPU usage exceeds 60% of the total available capacity in the last two minutes, or if the current memory usage increase rate is such that the automated process reaches the critical threshold in 30 minutes), an execution error of the automated workflow, an unexpected output generated by the automated workflow.
[0027] As described above, in some embodiments, the optimization action can include an automation action executed by an RPA robot, and the automation action corresponds to the result of the analysis. In these embodiments, the automation action can include at least one of the following: resuming the execution of an automated workflow by the RPA robot, delaying or stopping the execution of an automated workflow by the RPA robot, changing an element of the environment in which the RPA robot operates, changing the operating parameters of the RPA robot (e.g., a session variable specifying the maximum waiting time for an application to respond, or an environment variable specifying a location such as an input file), changing the defined parameters of the automated workflow (e.g., a subset of element attributes used during an object identification process) and / or the stages of the automated workflow (to enable its change if the automated workflow is designed with respect to its internal logic, stages, etc.), skipping an optional stage of the automated workflow during execution (where the optional stage is designed and pre-labeled as such in the automated workflow and includes any activity that is considered relevant but not essential (e.g., by a process owner), such as sending an email to a client after a task is executed, or generating a PDF version of a report), requesting different allocations of central processing unit (CPU) resources, requesting different allocations of memory resources, requesting an additional workload to be executed by the RPA robot, storing information related to the result of the analysis. For example, as described above, the analysis of the acquired data can include predicting or detecting that the amount of workload assigned to the RPA robot can be optimized, and in this example, the optimization action can include requesting an additional workload to be executed by the RPA robot. As another example, changing the defined parameters of the automated workflow can include externally controlling the elements of the deterministic logic or waiting time in the automated workflow.
[0028] As described above, in some embodiments, analyzing the acquired data can be performed using a first machine learning model. The first machine learning model can be trained using at least one of the operation metrics of the RPA robot, possible errors in the execution of the automated workflow by the RPA robot, and possible corrections to the operation parameters for executing the automated workflow by the RPA robot. The first machine learning model can comprise at least one of classical ML models (e.g., models based on linear / logistic regression, kernel-based models, decision trees, and random forest-based models, etc.) and deep learning models (e.g., recurrent neural networks, long short-term memory models, convolutional neural networks, models adopting the Transformer architecture, etc.).
[0029] Although not shown in FIG. 1, in some embodiments, method 100 can further include storing information including at least one of the acquired data related to the operation metrics of the RPA robot, the predicted or determined errors in the execution of the automated workflow, the predicted or determined operation parameters to be optimized in the execution of the automated workflow, and the determined optimization actions. Subsequently to storing this information, the method can further include training a first machine learning model based on the stored information.
[0030] Alternatively, or additionally, although not shown in FIG. 1, in some embodiments, method 100 may further include detecting the execution of an automated workflow by an RPA robot. In these embodiments, the step of obtaining data related to the operation metrics of the RPA robot during the execution of the automated workflow in S110 may be performed after the detection of the execution of the automated workflow, or may be performed at the time of detection of the execution of the automated workflow. Further, in these embodiments, the method may further include obtaining a policy after detecting the execution of the automated workflow by the RPA robot, the policy corresponding to the RPA robot and / or the automated workflow.
[0031] Alternatively, or additionally, although not shown in FIG. 1, in some embodiments, method 100 may further include receiving at least one of the following: user input to enable or disable the automatic execution of a determined optimization action; user input to confirm or reject a determined optimization action; user input to agree or disagree with a predicted or determined error and / or operation parameters to be optimized; user input to provide an alternative to a predicted or determined error and / or operation parameters to be optimized; user input to agree or disagree with a determined optimization action; user input to provide an alternative to a determined optimization action; user input indicating user feedback after execution of an optimization action (e.g., response to "was the problem accurately diagnosed?" and / or "was the problem sufficiently resolved?"). Method 100 may also include performing an optimization action, which in some embodiments may be performed only if user input enabling the automatic execution of a determined optimization action, and / or user input confirming a determined optimization action, and / or user input agreeing to a predicted or determined error, and / or operation parameters to be optimized, and / or user input agreeing to a determined optimization action, is received.
[0032] Method 100 may further include storing user input for verifying or rejecting a determined optimization action, and / or user input for agreeing or disagreeing with an optimized prediction or determined error and / or operation parameter, and / or user input for providing an alternative to a predicted or determined error and / or an optimized operation parameter, and / or user input for agreeing or disagreeing with a determined optimization action, and / or user input for providing an alternative to a determined optimization action, and / or providing user feedback after execution of an optimization action, and training a 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 a 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 a predicted or determined error, e.g., whether a software robot can resume execution), a numerical performance metric (e.g., a metric indicating the degree to which a given or determined error has been addressed, such as the difference between the current CPU usage and a target level after an optimization action has been executed, or the difference between a new predicted completion time and a target service level agreement (SLA) completion time), or a subjective user evaluation (e.g., indicating how satisfied a user is with an 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 the optimization goal of the RPA robot during the 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 the following: operation metrics of the RPA robot; operation parameters in the execution of the automated workflow by the RPA robot; deterministic algorithms 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 executed optimization actions, for example, whether the executed optimization action resolved the detected errors. The second machine learning model can comprise at least one of a classical machine learning (ML) model (such as a model based on linear / logistic regression, a kernel-based model, a decision tree, and a random forest-based model, etc.) and a deep learning model (such as a recurrent neural network, a long short-term memory (LSTM) model, a convolutional neural network, a model adopting a transformer architecture, etc.).
[0035] In some embodiments, the step of obtaining data related to the operation metrics of the RPA robot during the execution of the automated workflow in step S110 can include the step of obtaining first data related to a first session in the runtime resources corresponding to the automated workflow. In these embodiments, method 100 can further comprise the step of obtaining second data associated with the operation metrics of the RPA robot during the execution of a second automated workflow, wherein the second data is associated with a second session in the runtime resources, the step of determining an optimization action based on the second policy and the obtained second data. Further, in these embodiments, obtaining the second data can be triggered by the activation of the second session. The first and second policies may be the same policy or different policies. It will be understood that the triggering of the acquisition of the second data does not require any prior knowledge of the specific automated workflow to be executed during the second session.
[0036] FIG. 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, system 200 shown in FIG. 2 can be implemented as being implemented within a process manager, such as a server (e.g., server 320 as described below with reference to FIG. 3). As shown in FIG. 2, a system 200 is provided that includes an acquisition unit 210 and a determination unit 220.
[0037] The acquisition unit 210 is configured to acquire data related to the operation metrics of the RPA robot during the 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 being executed. The acquisition unit 210 may be configured to acquire data during a specific session (e.g., indicated by the 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 the definition of the automated workflow. For example, the automated workflow may be able to reference a specific external web service or application 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, the policy associated with the workflow may reference specific metrics within the 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 the operation metrics of the RPA robot may include, for example, at least one of the following: data related to the environment in which the RPA robot executes the automated workflow, data corresponding to a timestamped sequence of internal stages in the automated workflow, data related to the status of the 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 launched by the RPA robot during runtime, metrics related to the connection of the RPA robot to an application (e.g., an external web service such as a web page or webmail), metrics related to another runtime process on the same runtime resources as the RPA robot. These metrics may be historical values and / or current (real-time) values.
[0039] In some embodiments, the acquisition unit 210 may be configured to obtain data related to the operation metrics of the RPA robot by performing at least one of the following: detecting the operation metrics using sensors, 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 operating system and / or the environment related to the RPA robot), receiving an event related to the operation metrics that is triggered when corresponding conditions are met. The queried database may be a database that exists on a machine separate from the RPA robot. The query operation may be performed at each predetermined time interval.
[0040] The determination unit 220 is configured to determine an optimization action based on a 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 an 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 deleting stages of the workflow definition.
[0041] By using one or more policies, an end user can control the management of RPA robots, and more specifically, the execution of automated workflows by the RPA robots. The policy can be a rule-based policy that instructs corresponding conditions for comparison with operation metrics and actions to be executed based on the result of the comparison between the conditions and the operation metrics. Alternatively or additionally, the policy can determine the optimization goals of the RPA robot during the execution of the automated workflow. The corresponding conditions can be in the form of a threshold (e.g., the percentage of CPU usage of the total available usage) or a binary decision (e.g., whether the workflow is executing in an infinite loop). Further, in some embodiments, the policy may include two or more types of metrics and / or data, which may be historical sensor data. In some embodiments, the policy may be used by the acquisition unit 210, whereby the acquisition unit 210 may be configured to acquire data related to the operation metrics of the RPA robot based on the policy. For example, the policy can instruct a sensor for detecting the operation metrics of the RPA robot.
[0042] In some embodiments, the determination unit 220 may be configured to determine an optimization action by analyzing the acquired data related to the operation of the RPA robot during the execution of the automated workflow based on a policy for predicting or determining an error, and determining the optimization action based on the policy and the result of 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 a sudden increase in exception errors, or an alert indicating that the execution is behind schedule, etc.), an action recommendation corresponding to the result of the analysis, and an automatic action executed 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 can include combinatorial inference and / or planning and scheduling.
[0043] In these embodiments, the determination unit 220 may be configured to analyze the acquired data related to the operation of the RPA robot during the 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 operation parameter to be optimized in the execution of the automated workflow by the RPA robot. In other words, in some embodiments, the analysis can include only the prediction or detection of an error in the execution of the automated workflow, in some embodiments, the analysis can include only the prediction or detection of an operation parameter to be optimized in the execution of the automated workflow, and in some embodiments, the analysis can include both. The predicted or detected operation parameter to be optimized may be related to an improvement in the execution performance of the RPA robot. For example, it may be predicted or detected that the execution of the automated workflow is ahead of schedule - in this case, the corresponding operation parameter (to be optimized) may be the amount of workload assigned to the RPA robot within a certain period.
[0044] Predicted or determined errors in the execution of an automated workflow by an RPA robot can address abnormal behavior in the execution of the automated workflow. For example, the abnormal behavior can include at least one of an unexpected pause or termination of the automated workflow execution, an RPA robot operation metric 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, in some embodiments, an automated action executed by an RPA robot, and the automated action corresponds to the result of the analysis. In these embodiments, the automated action can include at least one of the following: resuming the execution of the automated workflow by the RPA robot, postponing or stopping the execution of the automated workflow by the RPA robot, changing an element of the environment in which the RPA robot operates, changing the operating parameters of the RPA robot, changing the defined parameters and / or stages of the automated workflow (if the automated workflow is designed with respect to its internal logic, stages, etc. and such changes are allowed), skipping any stage of the automated workflow being executed (if optional stages in the automated workflow are so designed and pre-labeled), requesting a different allocation of CPU resources, requesting a different allocation of memory resources, requesting a different workload to be executed by the RPA robot, and storing information related to the result 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, and in this example, the optimization action can include requesting an extra workload to be executed by the RPA robot. As another example, changing the defined parameters of the automated workflow can include externally controlling elements of the deterministic logic or waiting time in the automated workflow.
[0046] As described above, the determination unit 220 can be configured to analyze the acquired data using a first machine learning model. The first machine learning model can be trained using at least one of the operation metrics of the RPA robot, possible errors in the execution of the automated workflow by the RPA robot, and possible corrections to the operation parameters for executing the automated workflow by the RPA robot. The first machine learning model can include 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 adopting a transformer architecture, etc.).
[0047] In some embodiments, the system 200 can further include a storage unit configured to store information including at least one of the acquired data related to the 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. Further, in these embodiments, the system 200 can further include a training unit configured to train the first machine learning model based on the stored information (after the storage unit storing the information).
[0048] In some embodiments, system 200 may further comprise a detection unit configured to detect the execution of an automated workflow by an RPA robot. In these embodiments, acquisition unit 210 may be configured to obtain data related to the operation metrics of the RPA robot during the execution of the automated workflow only after the detection unit detects the execution of the automated workflow, or only when the detection unit detects the execution of the automated workflow. Further, in these embodiments, acquisition unit 210 may be configured to obtain a policy after the detection unit detects the execution of the automated workflow by the RPA robot, the policy corresponding to the RPA robot and / or the automated workflow.
[0049] Alternatively or additionally, although not shown in FIG. 2, in some embodiments, system 200 may further comprise a receiving unit configured to receive at least one of the following: user input to enable or disable the automatic execution of a determined optimization action; user input to confirm or reject a determined optimization action; user input to agree or disagree with a predicted or determined error and / or operation parameter to be optimized; user input to provide an alternative to a predicted or determined error and / or operation parameter to be optimized; user input to agree or disagree with a determined optimization action; user input to provide an alternative to a determined optimization action; and user input indicating user feedback after the execution of an optimization action. System 200 may further comprise an execution unit configured to execute an optimization action, and in some embodiments, the execution may be performed by the execution unit only when user input enabling the automatic execution of a determined optimization action, and / or user input confirming a determined optimization action, and / or user input agreeing with a predicted or determined error, and / or an operation parameter to be optimized, and / or user input agreeing with a determined optimization action, is received.
[0050] In some embodiments, system 200 may further comprise a storage unit configured to store user input for verifying or rejecting a determined optimization action and / or for agreeing or disagreeing with an optimized prediction or determined error and / or operation parameter, and / or for providing an alternative to a predicted or determined error and / or optimized operation parameter, and / or for agreeing or disagreeing with a determined optimization action, and / or for providing an alternative to a determined optimization action, and / or for storing user feedback after execution of an optimization action. In these embodiments, system 200 may further comprise a training unit configured to train a 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, determination unit 220 may be further configured to use the first machine learning model to determine an effectiveness score for a determined optimization action. The effectiveness score may be based on at least one of a binary result (i.e., whether the optimization action addresses a predicted or determined error, e.g., whether a software robot can resume execution), a numerical performance metric (e.g., a difference between the current CPU usage and a target level after the optimization action is executed, or a difference between a new predicted completion time and a target service level agreement (SLA) completion time, etc., a metric indicating the degree to which a given or determined error has been addressed), or a subjective user evaluation (e.g., indicating how satisfied a 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 direct the optimization goals of the RPA robot during the 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: the operation metrics of the RPA robot; the operation parameters in the execution of the automated workflow by the RPA robot; 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 executed optimization actions, for example, whether the executed optimization action resolved the detected errors. The second machine learning model can comprise at least one of a classical machine learning model (e.g., a model based on linear / logistic regression, a kernel-based model, a decision tree, and 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 adopting a transformer architecture, etc.).
[0053] In some embodiments, the acquisition unit 210 may be configured to obtain data related to the operation metrics of the RPA robot during the execution of the automated workflow by obtaining first data related to the first session in the runtime resources corresponding to the automated workflow. In these embodiments, the acquisition unit 210 may be further configured to obtain second data related to the operation metrics of the RPA robot during the execution of the second automated workflow, where the second data is related to the second session in the runtime resources. 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 obtain the second data when triggered by the start of the second session. The first and second policies may be the same policy or different policies.
[0054] In some embodiments, the system 200 may be provided as an external component of the automated workflow. Thus, at least in these embodiments, the system 200 is non-intrusive and does not require internal modifications to the RPA robot and / or the automated workflow to monitor and / or control the RPA robot and / or the automated workflow. The system 200 can utilize interfaces (e.g., sensors and / or actuators) that are already available to obtain relevant data (i.e., data related to the operation metrics of the RPA robot during the execution of the automated workflow) and / or to affect the execution of the automation (i.e., by performing optimization actions). Further, in this way, the system 200 can be configured to enable an organization that executes multiple processes (e.g., business-related automated workflows) using different RPA robots across different runtime resources to indicate whether to apply the functions of the system 200 in a given runtime resource.
[0055] Figure 3 is a diagram showing a topology for RPA robot management according to an 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 can be a wired or wireless network such as the Internet, an intranet, a LAN (Local Area Network), a WAN (Wide Area Network), an NFC (Near-field Communication) network, Bluetooth (registered trademark), infrared, radio frequency, a 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 can be a smartphone, a tablet computer, a laptop computer, a computer, a 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 can have a graphical user interface configured to enable a user to interact with the processor of the client computing device 305.
[0058] The server 320 can include a physical computing device that resides in a specific location or can be deployed in a cloud computing network environment. In the present disclosure, "cloud computing" can be defined as a model that enables ubiquitous and convenient on-demand network access to a shared pool of configurable computing resources (such as networks, servers, storage, applications, and services) that are rapidly provisioned via virtualization, released with minimal management effort or service provider interaction, and then scaled accordingly. The cloud model can be composed of various characteristics (such as on-demand self-service, broad network access, resource pooling, rapid elasticity, measured service, etc.), service models (such as Software as a Service (SaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS), and deployment models (such as private cloud, community cloud, public cloud, hybrid cloud, etc.). The server 320 can include any combination of one or more computer-usable or computer-readable media. In some embodiments, the server 320 can be configured to manage RPA robots. For example, the server 320 can execute at least a portion of the method 100 as described above with reference to FIG. 1.
[0059] Of course, this description is merely an example, and modifications and changes can be made to the described embodiments without departing from the scope of the present disclosure as defined in the claims.
[0060] The present technology has been described in detail for purposes of illustration based on what is currently considered to be the most practical and preferred embodiments, but such details are for that purpose only, and the present technology is not limited to the disclosed embodiments. On the contrary, it is to be understood that the present technology is intended to cover modifications and equivalent configurations within the scope of the appended claims. For example, it is to be understood that the present technology contemplates that, to the extent possible, one or more features of any implementation may be combined with one or more features of any other implementation.
[0061] Throughout this specification, references to "one embodiment", "an embodiment", "one example" or "an example" mean that a particular feature, structure, or characteristic described in connection with the embodiment or example is included in at least one embodiment of the invention. Thus, the appearances of the phrases "in one embodiment", "in an embodiment", "one example" or "an example" in various places throughout this specification are not necessarily all referring to the same embodiment or example. Furthermore, the particular features, structures, or characteristics may be combined in any suitable combination and / or sub-combination in one or more embodiments or examples. In addition, the drawings provided herein are for the purpose of illustrating to those skilled in the art and it is understood 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, when a program is executed by a processor, a computer program product may be provided that includes instructions for causing the processor to execute the method described with respect to FIG. 1. As another embodiment, a computer-readable storage medium may be provided that includes instructions for causing a computer to execute the steps of the method described in FIG. 1 when executed by the computer. Thus, 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 a software aspect and a hardware aspect that may generally be 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 relation to an exemplary computing system environment, embodiments of the present disclosure may operate in a number of other general-purpose or special-purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations suitable for use with aspects of the present disclosure include 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 household appliances, mobile phones, network PCs, minicomputers, mainframe computers, distributed computing environments including any of the above systems or devices, etc., but are not limited thereto.
[0064] Any combination of one or more computer-usable or computer-readable media may be utilized. For example, the computer-readable media 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. The 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] Flowcharts and block diagrams show 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 flowchart or block diagram may represent a module, segment, or portion of code that comprises one or more executable instructions for implementing the specified logical function. It should also be noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, can be implemented by a dedicated hardware-based system that performs the specified function or operation, or by a combination of dedicated hardware and computer instructions. These computer program instructions may be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner so as to produce a product including instruction means for implementing the functions / operations specified in the flowchart and / or block diagram.
[0066] The following is a list of embodiments of the present disclosure. 1. A computer-implemented method for managing robots in robotic process automation (RPA), Steps to obtain data related to the operation metrics of the RPA robot during the execution of the automated workflow; Steps to determine optimization actions based on policies related to the operation metrics of the RPA robot and the acquired data; A method having the above. 2. Determining the optimization actions includes Steps to analyze the acquired data related to the operation of the RPA robot during the execution of the automated workflow based on policies for predicting or determining errors; Steps to determine optimization actions based on policies and the results of the analysis; The method according to Embodiment 1, having the above. 3. The step of analyzing the acquired data related to the operation of the RPA robot during the execution of the automated workflow to predict or determine errors includes predicting or determining at least one of the errors in the execution of the automated workflow by the RPA robot and the operation parameters to be optimized in the execution of the automated workflow by the RPA robot. The method according to Embodiment 2. 4. The predicted or determined errors in the execution of the automated workflow by the RPA robot correspond to abnormal behaviors in the execution of the automated workflow. The method according to Embodiment 3. 5. Abnormal behaviors include Unexpected suspension or termination of the execution of the automated workflow, The operation metrics of the RPA robot exceeding the corresponding thresholds, Execution errors of the automated workflow, Unexpected outputs generated by the automated workflow, The method according to Embodiment 4, including at least one of the above. 6. The optimization actions include at least one of a message corresponding to the result of the analysis, an action recommendation corresponding to the result of the analysis, and an automatic action executed by the RPA robot corresponding to the result of the analysis. The method according to any one of Embodiments 2 to 5. 7. The automatic action includes at least one of resuming the execution of the automated workflow by the RPA robot, postponing or stopping the execution of the automated workflow by the RPA robot, changing elements of the environment in which the RPA robot operates, changing the operating parameters of the RPA robot, changing the defined parameters and / or stages of the automated workflow, skipping optional stages of the automated workflow during execution, requesting different allocations of central processing unit (CPU) resources, requesting different allocations of memory resources, requesting another workload to be executed by the RPA robot, and storing information related to the results of the analysis, and is the method according to embodiment 6. 8. Analyzing the acquired data includes analyzing the acquired data using at least one of a deterministic algorithm and a first machine learning model, and is the method according to any one of embodiments 2 to 7. 9. The first machine learning model is pre-trained using at least one of the operating metrics of the RPA robot, possible errors in the execution of the automated workflow by the RPA robot, and possible corrections to the operating parameters for the execution of the automated workflow by the RPA robot, and is the method according to embodiment 8. 10. The method further includes a step of storing information, and the information is acquired data related to the operating metrics of the RPA robot, predicted or determined errors in the execution of the automated workflow, predicted or determined operating parameters to be optimized in the execution of the automated workflow, determined optimization actions, training the first machine learning model based on the stored information, and has at least one of them, and is the method according to embodiment 8 or embodiment 9. 11. The method further includes a step of detecting the execution of an automated workflow by an RPA robot, and the step of obtaining data related to the operation metrics of the RPA robot during the execution of the automated workflow is performed following the detection of the execution of the automated workflow, the method according to any one of the foregoing embodiments. 12. The method further includes obtaining the policy after detecting the execution of the automated workflow by the RPA robot, the policy corresponding to the RPA robot and / or the automated workflow, the method according to embodiment 11. 13. Obtaining data related to the operation metrics of the RPA robot is based on the policy, the method according to any one of the foregoing embodiments. 14. User input to enable or disable the 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 operation parameters to be optimized, user input to provide an alternative to the predicted or determined error and / or operation parameters to be optimized, user input to provide an alternative to the determined optimization action, user input indicating user feedback after the execution of the optimization action, The method according to any one of the foregoing embodiments, further including receiving at least one of. 15. The method further includes executing the optimization action, the method according to any one of the foregoing embodiments. 16. The method according to embodiment 15 when dependent on embodiment 14, wherein executing the optimization action is performed only when a user input enabling the 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 operation parameters to be optimized is received, and / or a user input agreeing with the determined optimization action is received. 17. A method according to any one of embodiments 14 to 16 when depending on any one of embodiments 8 to 10, the method comprising: Storing user input for confirming or rejecting the determined optimization action, and / or user input for agreeing or disagreeing with the prediction or determined error and / or operation parameters to be optimized, and / or user input for providing an alternative to the predicted or determined error and / or operation parameters to be optimized, and / or user input for agreeing or disagreeing with the determined optimization action, and / or user input for providing an alternative to the determined optimization action, and / or user input for providing user feedback after execution of the optimization action; Training a first machine learning based on the stored user input and / or user feedback; A method having. 18. The method according to any one of embodiments 8 to 10, or any one of embodiments 14 to 17 when depending on any one of embodiments 8 to 10, further comprising determining an effectiveness score of the determined optimization action using a first machine learning model. 19. The method according to any one of the foregoing embodiments, wherein the policy is a rule-based policy that instructs corresponding conditions for comparison with the operation metric and actions to be performed based on the result of comparison between the conditions and the operation metric. 20. A method according to any one of the foregoing embodiments, wherein the policy instructs an optimization target of an RPA robot during execution of an 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. 21. The second trained machine learning model is The operation metric of the RPA robot, Operation parameters in the execution of the automated workflow by the RPA robot, A deterministic algorithm associated with at least one of rule execution, combinatorial optimization, artificial intelligence, planning, and scheduling The method according to embodiment 20, trained using at least one of them. 22. Obtaining data related to the operation metrics of the RPA robot includes Detecting operation metrics using sensors, Querying a database, Querying an operating system, Querying an external data source, Receiving an event related to an operation metric that is triggered when corresponding conditions are met, The method according to any one of the preceding embodiments, including at least one of them. 23. The policy instructs the sensor for detecting the operation metrics of the RPA robot, and obtaining the data associated with the operation metrics is based on the policy, the method according to embodiment 22. 24. Obtaining data related to the operation metrics of the RPA robot is based on the definition of the automated workflow, the method according to any one of the preceding embodiments. 25. The data related to the operation metrics of the RPA robot includes at least one of data related to the environment in which the RPA robot executes the automated workflow, data corresponding to a timestamped sequence of internal stages within the automated workflow, and data related to the status of the current session executed by the RPA robot, the method according to any one of the preceding embodiments. 26. The data related to the environment includes Metrics related to the use of the central processing unit (CPU) by the RPA robot, Metrics related to the use of the graphics processing unit (GPU) by the RPA robot, Metrics related to the memory usage by the RPA robot, Metrics related to the number of applications started by an RPA robot during execution time by the RPA robot, Metrics related to the connectivity of an RPA robot to an application, Metrics related to another execution time process on the same execution time resources as the RPA robot, The method according to embodiment 25, including at least one of them. 27. Obtaining data related to the operation metrics of an RPA robot during the execution of an automated workflow includes obtaining first data related to a first session in a runtime resource corresponding to the automated workflow, and the method includes During the execution of a second automated workflow, obtaining second data related to the operation metrics of the RPA robot, where the second data is related to a second session in the runtime resource; Determining an optimization action based on the second policy and the obtained second data; A method having. 28. The method according to embodiment 27, wherein obtaining the second data is triggered by starting the second session. 29. A system for managing the performance of a robotic process automation (RPA) robot, An acquisition unit configured to obtain data related to the operation metrics of an RPA robot during the execution of an automated workflow; A determination unit configured to determine an optimization action based on a policy and the obtained data related to the operation metrics of the RPA robot; A system comprising. 30. The system according to embodiment 29, wherein the system can be provided as an external component of the automated workflow. 31. A computer-readable storage medium that, when executed by a computer, includes instructions for causing the computer to execute the steps of the method according to 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 unexpected pauses or interruptions in the execution of the automated workflow, operational metrics of the RPA robot violating corresponding thresholds, execution errors of the automated workflow, unexpected outputs 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 the 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.