Systems and methods for request resolution
An AI-driven system efficiently resolves IT issues by selecting from stored files or online information, addressing the inefficiencies of existing methods and improving usability through feedback-based file generation.
Patent Information
- Authority / Receiving Office
- GB · GB
- Patent Type
- Applications
- Current Assignee / Owner
- SPHERICA BUSINESS SOLUTIONS
- Filing Date
- 2024-10-31
- Publication Date
- 2026-06-10
AI Technical Summary
Users face IT-related issues such as hardware and software problems, lack of knowledge or skills, and poor network connectivity, which can inhibit device usability, and existing resolution methods are time-consuming and unreliable.
A system utilizing artificial intelligence (AI) agents to analyze IT queries, select from stored automation or article files for resolution, and search online sources when necessary, with feedback-driven file generation and updating.
Provides efficient, reliable, and timely resolution of IT issues by leveraging AI to select appropriate files and update them based on user feedback, enhancing usability and reducing reliance on manual searches.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
The present invention relates to systems and methods for request resolution. In particular, the present invention relates to systems and methods for resolution of requests indicative of IT queries. BACKGROUND Users may encounter IT related issues for a variety of reasons and when left unresolved these issues can impact usability of processing systems and / or devices. IT related issues may arise from hardware and software problems such as errors, bugs and other similar technical problems as well as from users lacking knowledge, skill, or understanding for performing certain IT related tasks. For example, users may encounter issues such as poorly performing peripheral devices, such as a mouse, keyboard or other similar devices, and may lack knowledge, skill or understanding for investigating and resolving such issues. Other issues may be encountered such as poor network connectivity, slow processing for certain hardware or software applications, difficulty in being able to perform a task such as navigating software for configuring and updating access control settings for hardware, software and / or stored files and so on. A common approach for resolving such issues involves users searching online webpages for relevant materials which can often be a time consuming and unreliable process. Whilst some IT issues may be considered relatively unproblematic for some users, for other users the same IT issue can present a barrier that may inhibit usability of a computing device or system. For example, IT issues associated with poorly performing peripherals and / or updating or changing settings (such as device settings or software settings) may present difficulties for some users which, if unresolved, can inhibit usability. More generally, IT related issues can take a variety of different forms and may relate to processing issues such as errors or bugs and / or may relate to tasks for which user’s lack knowledge, skill, or understanding for performing. IT related issues can inhibit or prevent use of devices and systems by users. It is therefore desirable to provide improved resolution for IT related issues. It is in this context that the present invention arises. It is an aim of the present invention to reduce or overcome one or more of the problems associated with prior art methods and associated systems. SUMMARY OF THE INVENTION According to an aspect of the disclosure, a system comprises: storage circuitry to store a first dataset comprising one or more stored automation files and a second dataset comprising one or more stored article files comprising human-readable information for one or more IT tasks; and processing circuitry to run an artificial intelligence “Al” agent to: receive a request from a client, the request being indicative of at least one IT query; analyse the request and determine whether the storage circuitry stores a candidate file for resolving the request; and in response to determining that the storage circuitry stores a candidate file for resolving the request, select the candidate file to be used for resolving the request, wherein the candidate file is one of a stored automation file and a stored article file. The Al agent may be operable to analyse the request and determine whether the first dataset comprises a stored automation file for resolving the request as a first resolution path, and determine whether the second dataset comprises a stored article file for resolving the request as a second resolution path. The one or more stored automation files may comprise an Al-generated automation file, wherein the Al-generated automation file may have been generated based on an article file currently stored or previously stored by the storage circuitry. In response to determining that the storage circuitry does not store a candidate file for resolving the request, the Al agent may be operable to search online sources and obtain online information to be used for resolving the request. The Al agent may be operable to search one or more public websites previously classified as being reliable sources. The system may be configured to receive user feedback indicative of a user rating for the online information and store the online information to the storage circuitry in dependence on the user feedback. The Al agent may be operable to: receive a second request from another client, the second request being indicative of a same IT query; analyse the second request and determine that the storage circuitry stores the online information for resolving the request; and select the online information to be used for resolving the second request. The system may be configured to update the second dataset to include a stored article file corresponding to the online information responsive to whether user feedback for the online information is indicative of positive user feedback from at least a threshold number of users. The Al agent may be operable to search the online sources and obtain the online information for resolving the request as a third resolution path. The system may be configured to store the online information to a third dataset. In response to receiving a second request from another client, the Al agent may operable to determine whether the third dataset comprises a candidate file for resolving the request as a third resolution path, and the Al agent may be operable to search the online sources and obtain the online information for resolving the request as a fourth resolution path. The system may be configured to update the first dataset to include an automated file generated based on a stored article file responsive to whether user feedback for the stored article file is indicative of positive user feedback from at least a threshold number of users. In response to positive user feedback for the stored article file from at least the threshold number of users, the system may be configured to provide a notification to at least one of: the Al agent; another Al agent; and a user that an automation file is to be generated based on the stored article file. The Al agent or the another Al agent may be operable to automatically generate the automation file in response to the notification. The system may be configured to: update the second dataset to include the stored article file for the online information in response to a first threshold condition defining a first threshold number of users; and update the first dataset to include the automation file generated based on the stored article file in response to a second threshold condition defining a second threshold number of users, wherein the first threshold number of users is the same as or different from the second threshold number of users. The processing circuitry may be configured to run one or more Al agents to: access an article file stored by the storage circuitry; generate an automation file in dependence on the article file; and store the automation file to the storage circuitry. The one or more Al agents may be operable to: read the article file; generate an automation specification in dependence on the article file; review the automation specification and update the automation specification to obtain an updated automation specification; generate code for an automation file in dependence on the updated automation specification; perform a test run using the code; and store an automation file including the code in dependence on an outcome of the test run. The system may be configured to disable at least one of a stored automation file and a stored article file and provide a notification to at least one of a user and an Al agent, responsive to negative user feedback from at least a threshold number of users. The threshold number of users may be two. The request may comprise natural language and the Al agent may be operable to: analyse the natural language and determine an IT query; and determine whether the storage circuitry stores a candidate file for resolving the IT query. The system may be configured to output at least one of: a downloadable file corresponding to the candidate file; and web user interface information for the candidate file. The system may be configured to run or execute a stored automation file in response to selection of the stored automation file by the Al agent. According to an aspect of the disclosure, a computer-implemented method comprises: receiving a request from a client, the request being indicative of at least one IT query; accessing storage circuitry storing a first dataset comprising one or more stored automation files and a second dataset comprising one or more stored article files comprising human-readable information for one or more IT tasks; analysing the request and determining whether the storage circuitry stores a candidate file for resolving the request; and in response to determining that the storage circuitry stores a candidate file for resolving the request, selecting the candidate file to be used for resolving the request, wherein the candidate file is one of a stored automation file and a stored article file. According to another aspect of the disclosure, a computer program comprises instructions which, when executed by a computer, cause the computer to perform any of the above methods. Various aspect and features of the present invention are defined in the appended claims and within the text of the accompanying description. Example embodiments include at least systems, apparatus, methods, computer programs and a machine-readable, non-transitory storage mediums which store such computer programs. BRIEF DESCRIPTION OF THE FIGURES In order that the present disclosure may be more readily understood, embodiments thereof will now be described, by way of example only, with reference to the accompanying drawings, in which: Figure 1 is a schematic diagram illustrating a system accessible to clients via a network for resolving requests. Figure 2 is a schematic diagram illustrating a system in accordance with embodiments of the disclosure; Figure 3 is a schematic flowchart illustrating an example method for resolving a request; Figure 4 is a schematic flowchart illustrating another example method for resolving a request; Figures 5a, 5b and 5c are schematic diagrams illustrating user feedback for updating datasets for resolving requests; Figures 6, 7, 8 and 9 are schematic flowcharts illustrating methods for generating an automation file; and Figure 10 is a schematic flowchart illustrating a method for resolving a request from a client. DETAILED DESCRIPTION OF THE DISCLOSURE Aspects of the disclosure provide systems and methods that may be at least partly implemented using artificial intelligence (Al). Machine learning and artificial intelligence techniques may be implemented in hardware, software, firmware, or any combination thereof. Trained machine learning models (ML models) may be implemented as hardware, or computer programs running on conventional or specialised hardware. Trained ML models may be implemented by one or more systems. Computer programs for implementing ML models may be stored in any suitable storage medium such as random access memory (RAM), read only memory (ROM) flash memory, a hard disk and so on. Aspects of the disclosure may use one or more trained Al agents which may be suitably trained for the purposes of any of the techniques disclosed herein. Trained Al agents may be implemented as processor-implemented artificial neural networks (ANNs) using one or more of: one or more central processing units (CPUs), one or more graphics processing units (GPUs), one or more digital signal processors (DSPs), one or more field programmable gate arrays (FPGAs), one or more application specific integrated circuits (ASICs), and one or more deep learning processors (DLP) or other similar Al accelerators. Aspects of the disclosure may use so-called generative Al. In particular, Al agents based on generative pretrained transformers (GPTs) may be used, such as Open Al’s Chat GPT among others. The techniques of the present disclosure relate to systems and methods for resolution of requests indicative of IT queries. Figure 1 schematically illustrates an example arrangement in which a data processing system 110 is accessible to one or more clients 120 via a network 130. Figure 1 provides an example in which the data processing system 110 (also referred to herein as the system 110) is capable of communicating with clients via the network 130 for receiving requests and providing outputs for resolving requests. The system 110 may receive requests from any suitable number of clients. For ease of explanation, the techniques of the present disclosure will generally refer to examples in relation to one or more requests from a respective client, however it will be appreciated that the techniques can also be applied for other clients. The data processing system 110 and the client 120 may communicate using any suitable communications technology. In some examples, the data processing system 110 and the client 120 may be part of a same Local Area Network (LAN). For example, the data processing system 110 and the client 120 may be within a same local area such as a same building, site or premises. In other examples, the data processing system 110 and the client 120 may communicate via a Wide Area Network (WAN), such as the Internet. For example, the data processing system 110 may be provided in the form of hardware at one or more datacentres. In some examples, cloud-based systems may be used and, in particular, public and / or private cloud computing techniques may be used. References to a client that communicates one or more requests to the system 110 may refer to a computer hardware device and / or a software application. References to a client thus encompass a software client and / or hardware client. For example, client devices may correspond to endpoint devices such as desktops, laptops, smartphones and so on. In some examples, devices may run a client application for interacting with the system 110. In some examples, virtualisation techniques may be used. A host device, such as a host server, may use a hypervisor (also known as a virtual machine monitor) to run a number of virtual machines (i.e. software emulations of physical client devices). A virtual machine thus provides an example of a suitable software client which may interact with the system 110. In some embodiments of the disclosure, web browser techniques may be used for allowing client interaction with the data processing system 110. A browser user interface (BUI) may be displayed at a client for allowing clients to send requests indicative of IT queries to the data processing system. The browser user interface may comprise one or more of an input field for receiving text-based user input and / or one or more selectable user interface elements. More generally, a browser user interface may comprise one or more control inputs allowing user inputs for specifying one or more IT queries to be communicated to the system 110. For example, a user may enter (e.g. by typing and / or speech recognition) text in an input field in the user interface and select an option to send the text to the data processing system 110 for requesting assistance for an IT related issue. In some examples, a voice recording by a user or live audio input from a user may be communicated to the system and speech recognition techniques may be performed to obtain text corresponding to voice corresponding. For example, a client may have one or more associated microphones for allowing voice input by a user. In some embodiments of the disclosure, email-based techniques may be used for allowing client interaction with the data processing system 110. A text-based user input included in an email may be analysed by the Al agent. Alternatively or in addition, a voice recording included in an email may be analysed by the Al agent. In some examples, the system may output information to a client in the form of an email which may comprise one or more downloadable files (e.g. downloadable automation files and / or downloadable article files) so that files can be downloaded to one or more clients. More generally, the system 110 is operable to receive one or more requests from one or more clients, in which requests are indicative of natural language inputs corresponding to IT queries to be resolved. Figure 2 is a schematic diagram illustrating the data processing system 110 in more detail. The data processing system 110 comprises storage circuitry 210, processing circuitry 220 and output circuitry 230. The functionality of the data processing system may be implemented using one or more data processing apparatuses and may be implemented in a distributed manner. In some examples, the functionality of the data processing system 110 may be implemented using one or more backend servers and data stores. Any of the storage circuitry 210, the processing circuitry 220 and the output circuitry 230 may be distributed across as number of devices at potentially different locations. In embodiments of the disclosure, the storage circuitry 210 is configured to store one or more automation files and one or more article files. A first dataset (also referred to as an automation file dataset or an automation dataset) includes one or more automation files. A second dataset (also referred to as an article file dataset or an article dataset) includes one or more article files. In the following discussion, references to the first dataset refer to a set of one or more automation files currently stored by the storage circuitry, and references to the second dataset refer to a set of one or more article files currently stored by the storage circuitry. The storage circuitry 210 stores first and second datasets for use in resolving requests from clients. A stored automation file represents a file that can be run by one or more processors to automatically perform one or more actions. A stored automation file comprises code which can be run or executed for performing one or more actions. References to code may refer to a script, such as a command line script, source code, or object code. Any suitable scripting language may be used such as Java, PowerShell, Bash (e.g. .java, .jar, .ps, .sh, .exe) and so on. Whereas an automation file is capable of being run or executed for automatically performing one or more actions, an article file comprises human-readable information for one or more IT tasks. A stored article file may be a text, PDF, Word or PNG file for example (e.g. .txt. .pdf, .doc, .png). A stored article file generally comprises information in a human-readable format for providing guidance (e.g. step-by-step instructions) for successfully guiding a user to complete one or more IT tasks. Hence more generally, whereas an automation file can be run or executed by a processing device for automatically performing one or more functions, an article file comprises human-readable information for guiding a user as to one or more user inputs needed for controlling a processing device to perform one or more functions. In some embodiments of the disclosure, the system 110 may output at least one of: a downloadable file corresponding to the candidate file; and web user interface information for the candidate file. A downloadable file may correspond to any of an automation file and an article file. For example, the system 110 may output an automation file to a client for running or executing the automation file on the client. In particular, the system 110 may output an automation file for running or executing the automation file on an end user device such as a laptop, smartphone or other similar processing device. The output circuitry 230 may thus output any of: downloadable files and / or web user interface information. In some examples, the system may receive an email including a request from a client indicative of an IT query and the system may output an email to the client including any of an automation file and an article file. In some embodiments of the disclosure, the system 110 may run or execute a stored automation file in response to selection of the stored automation file by the Al agent. The Al agent can be operable to select a candidate file according to any of the techniques discussed herein, and in response to selection of an automation file the system may automatically run or execute the automation file. In some embodiments of the disclosure, the output circuitry 230 may comprise automation file execution circuitry operable to run or execute one or more automation files. The automation file processing circuitry operable may be operable run or execute a given automation file wholly or partially. In some examples, running or execution of a stored automation file may comprise processing by both the system 110 and a client. In some examples, the system 100 may be implemented using one or more servers and as such server-based running or execution of automation files may be provided. The storage circuitry 210 may be implemented using one or more storage devices. In some examples, the first and second datasets may be stored in a same datastore. For example, a same datastore may be used to store both automation files and article files. In this case, file type and / or metadata associated with files may be used to readily distinguish between automation files and article files. In some examples, a first datastore may be used to store automation files and a second datastore may be used to store article files. In some examples, the storage circuitry 210 may be distributed across as number of devices at potentially different locations. In some examples, the storage circuity may comprise one or more databases for storing the first dataset and the second dataset. The storage circuity may comprise a first database for storing the first dataset and a second database for storing the second dataset. In particular, the storage circuity may comprise an automation file database for storing automation files and an article file database for storing article files. Metadata and / or a file type associated with a given stored file may be used for distinguishing between stored automation files and stored article files in a same datastore or database. More generally, the storage circuitry 210 may take any suitable form suitable for storing automation files and article files. Volatile memory, non-volatile memory or a combination thereof may be used. Random access memory (RAM), flash memory, hard disks, solid state drives and so on may be used. In the techniques of the present disclosure, any suitable file storage technique may be used. In some examples, an artificial intelligence (Al) agent may access stored files from one or more folders. For example, automation files and article files may be accessed from a same folder, and file type and / or metadata may be used by the Al agent for distinguishing between automation files and article files. In other examples, a first folder may store only automation files and a second folder may store only article files. More generally, the storage circuitry 210 stores at least a first dataset including one or more automation files and a second dataset including one or more article files, and data stored by the storage circuitry 210 is accessible by the processing circuitry 220 for the techniques of the present disclosure. The processing circuitry 220 is configured to run an artificial intelligence “Al” agent to: receive a request from a client and access the storage circuitry 210 for selecting a candidate file from the storage circuitry 210 for resolving the request. References to an Al agent refer to any of a hardware Al agent, a software Al agent or a combination thereof. The processing circuitry 220 is configured to run the Al agent, in which the Al agent is operable to: receive a request from a client (e.g. 120), the request being indicative of at least one IT query; analyse the request and determine whether the storage circuitry 210 stores a candidate file for resolving the request; and in response to determining that the storage circuitry 210 stores a candidate file for resolving the request, select the candidate file for resolving the request, wherein the candidate file is one of a stored automation file and a stored article file. As explained above, in some cases the data processing system 110 may be implemented in a distributed manner using one or more servers and databases. Hence, in some embodiments of the disclosure, data processing system 110 may comprise: one or more databases to store a first dataset comprising one or more stored automation files and a second dataset comprising one or more stored article files comprising human-readable information for one or more IT tasks; and one or more servers comprising the processing circuitry 120 (e.g. one or more CPUs and / or GPUs) to run an Al agent to: receive a request from a client, the request being indicative of at least one IT query; analyse the request and determine whether the storage circuitry stores a candidate file for resolving the request; and in response to determining that the one or more databases store a candidate file for resolving the request, select the candidate file to be used for resolving the request, wherein the candidate file is one of a stored automation file and a stored article file. The Al agent may perform natural language processing (NLP) in respect of a received request. The Al agent may use any suitable large language models (LLMs) to analyse and respond to client requests using at least the data stored by the storage circuitry 210. Generative pretrained transformers (GPTs) such as Open Al’s ChatGPT or other similar Al agents may be used. The Al agent is operable to analyse a request and determine whether the storage circuitry 210 stores a candidate file for resolving the request. The Al agent may analyse the content of the request and may also analyse files available from the storage circuitry 210 to determine whether a candidate file is available for resolving the request. For example, a request may comprise a natural language query that has been input by a user via a browser user interface and may relate to an issue such as an encountered error, bug or problem and / or a specific task for which assistance is required. For example, a request may comprise a natural language query indicative of an issue such as poor performance of a peripheral device (such as poor performance for a mouse). The request may generally indicate presence of a device performance issue or may be more specific and indicate a specific task for which assistance is requested (such as how to update software for a peripheral device). This represents one possible example. In another example, a user may encounter difficulty in performing one or more IT tasks (such as updating settings or access control permissions) and the request may comprise natural language text indicative of an IT query for how to perform the IT task(s). For example, a user may wish to update settings for one or more devices (e.g. display settings) or access control settings and so on. More generally, the Al agent may perform natural language processing in respect of a natural language query to determine an IT issue to be resolved (e.g. fixing a bug or other error and / or for performing one or more IT tasks). In some examples, requests may relate to hardware errors, software errors or queries for certain IT tasks. The Al agent can be operable to analyse requests and select candidate files to be used for resolving such requests. A candidate file may correspond to an automation file for updating software for one or more peripheral devices so as to automatically fix one or more hardware and / or software errors. A candidate file may correspond to an article file for explaining how to update software for one or more peripheral devices so as to enable a user to fix such errors. A candidate file may correspond to an article file for explaining how to perform a given IT task such as updating security and access control settings in one or more software application. A candidate file may correspond to an automation file for automatically performing an IT task such as updating security and access control settings in one or more software application. Hence more generally, the Al agent can analyse requests and select candidate files for resolving requests, and this can potentially fix issues, errors, bugs and so on and / or assist users in competing tasks which may relate to such fixes and / or other tasks. Moreover, in the techniques of the present disclosure the Al agent analyses requests and has access to the storage circuitry 210 so that files can be selected from the storage circuitry and this can provide reliable, accurate and timely request resolution. This may be enhanced with online searching, as discussed in more detail later. In some examples, the Al agent may use a classification technique to classify a request and also classify stored files so that a correspondence between a classification for the request and a classification for a stored file can be used for determining a candidate file. In some examples, the Al agent may use semantic classification techniques to classify a request and also classify stored files. Accordingly, semantic classifications may be obtained and matching of a semantic classification for the request with a semantic classification for a stored file may be used to determine that the stored file is a candidate for resolving the request. In some examples, the Al agent may use classifications corresponding to different types of IT queries. Examples of possible classifications may include slow performance, loss of connection, password problems, compatibility issues, peripheral device issues and so on. In some cases, a more granular classification scheme may be implemented. For example, rather than peripheral device issues, classifications (or sub-classifications) such as keyboard issues, mouse issues, trackpad issues, camera issues and so on may be implemented. Classifications corresponding to different types of IT queries may thus be determined and matching of such classifications may be used for determining whether a candidate file is available for resolving a request. Hence more generally, in some examples the Al agent may: receive a request; generate data indicative of a classification for the request; generate data indicative of classifications for at least some or all of the stored files; and determine a stored file having a same classification as the request as being a candidate file for resolving the request. This represents one possible example for determining a candidate file. In some examples, the Al agent may analyse a request using natural language processing to determine an associated IT query (e.g. an IT problem to be fixed and / or an IT task for which a user requests assistance) and determine a probability distribution over the stored files available from the storage circuitry 210. In this way, the Al agent may determine a set of probabilities for the stored files. For the stored file associated with the highest probability, evaluation with respect to a threshold may be used for determining whether the stored file is a candidate for resolving the request. For example, the Al agent may determine a respective stored file with a highest likelihood of being suitable for successfully resolving the request and also an associated confidence score. The Al agent may determine whether the respective stored file is a candidate file for resolving the request in dependence on the confidence score (e.g. threshold comparison). More generally, the Al agent is operable to determine whether the storage circuitry 210 stores a candidate file for resolving a request. In response to determining that the storage circuitry stores a candidate file for resolving the request, the Al agent is operable to select the candidate file to be used for resolving the request. Accordingly, depending on the request and the stored files, the Al agent may select a stored file which is one of a stored automation file and a stored article file. For example, in response to a request indicative of a mouse issue (or other similar pointer device), the Al agent may select an automation file for updating a device driver for a mouse (if available) or select an article file including information in a human readable format for guiding a user though steps for updating a device driver for a mouse (e.g. a mouse troubleshooting article file). This represents one possible example and it will be appreciated that there can be wide ranging use cases. In some examples, the Al agent may analyse each stored file (i.e. analyse both stored automation files and stored article files) for determining whether any of the stored files can be used for resolving the request. In response to determining that the storage circuitry does not store a candidate file for resolving the request, then the Al agent may log a ticket for the request and forward the ticket for review (e.g. by Al, or a developer, or admin user or similar). In other examples, in response to determining that the storage circuitry does not store a candidate file for resolving the request, the Al agent may then perform searching of online sources to obtain information for resolving the request. This is discussed in more detail later. In some embodiments of the disclosure, the Al agent may be operable to analyse a received request and determine whether the first dataset comprises a stored automation file for resolving the request as a first resolution path, and determine whether the second dataset comprises a stored article file for resolving the request as a second resolution path. In other words, the Al agent may firstly determine, from the stored automation files available from the storage circuitry 210, whether there is a stored automation file that is a candidate for resolving the request and, if the stored automation files do not include a candidate for resolving the request, the Al agent may determine, from the stored article files available from the storage circuitry 210, whether there is a stored article file that is a candidate for resolving the request. If the Al agent determines a respective stored automation file is a candidate for resolving the request, then the Al agent can select that respective stored automation file to be used for resolving the request. Accordingly, in this case the first resolution path successfully determines a stored automation file as being a candidate file for resolving the request, and the Al agent can determine the candidate file without needing to analyse stored article files. This can contribute to improved processing efficiency and preferential selection automation files may assist in more timely request resolution. However, if the stored automation files do not include a candidate file for resolving the request, then the Al agent can proceed to assess the stored article files to determine whether a candidate file is available for resolving the request. If the Al agent determines a respective stored article file is a candidate for resolving the request, then the Al can select that respective stored article file to be used for resolving the request. Accordingly, in this case the second resolution path successfully determines a stored article file as being a candidate file for resolving the request. Therefore, in the case that an automation file is not available for resolving the request, the system 110 can select an article file to be used for resolving the request. If the stored article files do not include a candidate for resolving the request, then the Al agent may log a ticket for the request, or the Al agent may proceed to search online sources as a third resolution path. In some examples, the Al agent may analyse a first folder comprising only automation files as a first resolution path and may analyse a second folder comprising only article files as a second resolution path. Alternatively, automation files and article files may be included in a same folder, and the Al agent may use file type and / or metadata to distinguish between automation files and article files, and may analyse each of the automation files as a first resolution path and analyse each of the article files as a second resolution path. In some examples, automation files and article files may be stored in separate datastores (e.g. separate databases) and separate datastores may thus be analysed in order. In some examples, a first database may store automation files and a second database may store article files. Optionally, a third database may store one or more test article files. In some examples, the Al agent may use two or more resolution paths for resolving a request and this may comprise using different databases for different resolution paths. For example, as a first resolution path, the Al agent may determine whether a candidate file is available from a plurality of stored files in a first database and, as a second resolution path, the Al agent may determine whether a candidate file is available from a plurality of stored files in a second database. Figure 3 illustrates an example method 300 for resolving a request from a client. At a step 310, the data processing system 110 (also referred to herein as the system 110) receives a request from a client, in which the request is indicative of one or more IT queries (e.g. an IT issue, and / or a request for assistance in relation to an IT task). At a step 320, the Al agent analyses the request. At a step 330 the Al agent determines whether the storage circuitry 210 stores a candidate file for resolving the request. In response to determining that the storage circuitry stores a candidate file for resolving the request, the method proceeds to the step 340 and the Al agent selects the candidate file to be used for resolving the request. At a step 350, the system outputs data in dependence on the selected candidate file (e.g. outputting one or more of a downloadable file and / or data for a web user interface and / or automatically running or executing an automation file). However, in response to determining (at the step 330) that the storage circuitry does not store a candidate file for resolving the request, the method proceeds to the step 360 at which the Al agent is operable to search online sources for a resolution for the request. At a step 370, online information is obtained by the Al agent, and at the step 350 the system instead outputs data in dependence on the online information obtained by the Al agent. Accordingly, in the method 300 a stored file can be identified for resolving the request and, if the Al agent determines that there is no stored file suitable for resolving the request, online information can be obtained for resolving the request. At the step 330, the Al agent may determine whether a candidate file is available from any of the first data set and the second data set (i.e. automation files and article files may each be analysed as a first resolution path). Alternatively, at the step 330 the Al agent may determine whether a candidate file is available from the stored automation files as a first resolution path, and determine whether a candidate file is available from the stored article files as a second resolution path, and search online sources as a third resolution path. Figure 4 represents an example method 400 using three resolution paths. The steps 410 and 420 are the same as the steps 310, 320 discussed already in relation to Figure 3. At a step 431, the Al agent determines whether the first dataset (automation dataset) comprises a stored automation file for resolving the request. In response to determining that the first dataset comprises a stored automation file for resolving the request, the method proceeds to the steps 440 and 450. The steps 440 and 450 are the same as the steps 340, 350 discussed already in relation to Figure 3. Hence, in the case that a stored automation is available for the request, the Al agent can select the stored automation to be used for resolving the request without carrying out an assessment in relation to the stored article files. Referring again to the step 431, in response to determining that the first dataset does not comprise a stored automation file for resolving the request, the method proceeds to the step 432. At the step 432, the Al agent determines whether the second dataset (article dataset) comprises a stored article file for resolving the request. In response to determining that the second dataset comprises a stored article file for resolving the request, the method proceeds to the steps 440 and 450. Hence, in the case that a stored article is available for the request, the Al agent can select the stored article file to be used for resolving the request without searching online sources. Referring again to the step 432, in response to determining that the second dataset does not comprise a stored article file for resolving the request, the method proceeds to the step 460. At the step 460, the Al agent searches online sources for online information for resolving the request. For example, one or more predefined websites may be searched. At a step 470, the Al agent obtains online information from an online source and the method proceeds to the step 450. In some embodiments of the disclosure, the Al agent may be operable to search one or a plurality of public websites previously classified as being reliable sources. Public websites may be previously classified as reliable using Al techniques and / or human classification. Therefore, a plurality of predefined websites may be defined in advance for use as online sources that can be searched for resolving a request. A list of predefined websites may be established and updated over time (e.g. by adding new sources and / or removing sources). In some examples, user feedback for online information may be used to increase or decrease a likelihood of a given website associated with the online information being searched in the future. In particular, negative user feedback may be used to automatically disable searching for one or more websites and / or flag one or more websites for review by a user (e.g. admin user). The steps in the methods 300 and 400 can be performed using one or more Al agents. In some embodiments of the disclosure, a same Al agent may perform the methods 300 and 400. In particular, a same Al agent may analyse a request, determine whether a candidate file is available from the storage, and also search online sources. In some examples, a first Al agent may analyse the request and determine whether a candidate file is available from the storage, and a second Al agent may be used for searching online sources. In particular, a second Al agent dedicated to searching of online sources may be employed. In the above discussion, the storage circuitry stores one or more automation files and one or more article files. The one or more automation files may comprise one or more Al-generated automation files and / or one or more user-generated automation files. In some examples, a user may generate an automation file for a specific task and add (e.g. upload) the automation file. The one or more article files may comprise one or more Al-generated article files and / or one or more user-generated article files. In some examples, a user may generate an article file for a specific task and add (e.g. upload) the article file. In some embodiments of the disclosure, the storage circuitry 210 may store one or more automation files, in which at least one of the automation files may be an Al-generated automation file. The Al-generated automation file may have been generated based on an article file currently stored or previously stored by the storage circuitry. The system 110 (or another system dedicated to Al generation of automation files) can be operable to run an automation-file generating Al agent for generating an automation file using an article file. The article file may have been manually created by a user and uploaded, or the article file may have been automatically generated (e.g. using Al) based on online information previously obtained when resolving a past request. In some embodiments of the disclosure, the storage circuitry 210 may store one or more article files, in which at least one of the article files may be an Al-generated article file. The Al-generated article file may have been generated based on online information previously obtained from an online source for resolving a previously received request. Alternatively or in addition, at least one of the article files may be a user-generated article file that has been generated based on online information previously obtained from an online source for resolving a previously received request. Accordingly, an Al agent may generate an automation file using any of an automatically generated article file or a user-created article file. Referring again to Figures 3 and 4, at the steps 330 and 431, the Al agent may determine a candidate file for resolving the request, in which the candidate file may be an Al-generated automation file or user-generated automation file having been generated based on an article file currently stored or previously stored by the storage circuitry 210. Alternatively, at the steps 330 and 432, the Al agent may determine a candidate file for resolving the request, in which the candidate file may be an Al-generated article file or user-generated article file having been generated based online information previously obtained for resolving a previous request. The above discussion refers to arrangements in which the storage circuitry 210 currently stores one or more automation files and one or more article files. In some examples, the storage circuitry 210 may not store any automation files (at least initially). The storage circuitry 210 may initially store a plurality of article files without storing any automation files. For example, users may create article files without creating automation files. Accordingly, the method 300 may be performed to select a candidate file from the plurality of article files for resolving a request. In the techniques of the present disclosure, user feedback from users in respect of a stored article file can be used for triggering Al-generating of an automation file based on the stored article file. Hence, in some examples users may be able to create and upload article files (e.g. PDF, word and / or text documents) to the storage circuitry and user feedback in relation to the article files may be used for deciding whether and / or which article files are to be automated. Hence, in some examples, the storage circuitry 210 may initially store a plurality of article files, and responsive to user feedback for the article files, one or more automation files may be generated and stored to the storage circuitry. In some examples, each of the automation files stored by the storage circuitry 210 may be an Al-generated automation file that has been generated by an automation-file generating Al agent using an article file currently stored or previously stored by the storage circuitry 210. Hence more generally, in some embodiments of the disclosure the data processing system 110 may comprise: the storage circuitry 210 to store one or more article files comprising human-readable information for one or more IT tasks; the processing circuitry 220 to run an artificial intelligence “Al” agent operable to: receive a request from a client, the request being indicative of at least one IT query; analyse the request and determine whether the storage circuitry stores a candidate file for resolving the request; and in response to determining that the storage circuitry stores a candidate file for resolving the request, select the candidate file to be used for resolving the request, wherein the candidate file is a stored article file, wherein: in response to receiving user feedback from at least a threshold number of users indicative of a positive user rating for the stored article file, the system may be configured to: create an automation file based on the stored article file; and store the automation file to the storage circuitry 210. User Feedback Examples In some embodiments of the disclosure, user feedback for stored article files may be used for automatically generating automation files and / or providing notifications to users and / or one or more Al agents that an automation file is to be generated based on the stored article. Generally speaking, an article file which has received positive user feedback can be targeted for processing to generate a corresponding automation file. Similarly, user feedback for online information obtained from online sources may be used for automatically generating article files and / or test article files. Figure 5a is schematic diagram illustrating an example in which the storage circuitry 210 stores an automation dataset 510 comprising one or more automation files and an article dataset 520 comprising one or more article files. The solid arrow 511 represents the order in which the datasets are used for determining whether a candidate file is available from the storage circuitry 210 for resolving a request. Hence, Figure 5a shows an example in which the automation dataset 510 (also referred to as the first dataset) is used as a first resolution path for resolving the request, and the article dataset 520 (also referred to as the second dataset) is used as a second resolution path for resolving the request. The dashed arrow 521 represents an update for updating the automation dataset 510 to include a new automation file based on an article file stored in the article dataset 520. Figure 5a represents an example in which the Al agent uses two resolution paths. In some examples, in response to determining that the automation dataset 510 and the article dataset 520 do not store a candidate file for resolving a request, the system 110 may generate a ticket for the request for assessment by a user (e.g. admin user). Alternatively or in addition to generating the ticket, the Al agent may perform searching of online sources to obtain online information for resolving the request, as a third resolution path. Figure 5b is a schematic diagram illustrating an example of this. The solid arrows 511 and 512 represent the order of the processing operations for resolving a request. Hence, Figure 5b shows an example in which the automation dataset 510 is used as a first resolution path for resolving the request, the article dataset 520 (also referred to as the second dataset) is used as a second resolution path for resolving the request, and the online sources are used as a third resolution path for resolving the request. Figure 5c is a schematic diagram illustrating an example in which a test dataset 525 is provided for storing online information that has been used for a request so that previously used online information may be stored by the storage circuitry 210 and may be used for other requests, when appropriate. In particular, the system may output online information for resolving a request and may store the online information to the storage circuitry 210 depending on user feedback for that online information. In particular, online information that receives positive user feedback may be stored to the test dataset representing data that may be selected by the Al agent to be used for future requests. Online information stored to the test dataset may subsequently be promoted to the article dataset 520 responsive to user feedback. Similar to that discussed above for Figures 5a and 5b, the solid arrows 511, 512 and 513 represent the order of the processing operations for resolving a request. In particular, the Al agent may: firstly access the automation dataset 510 for determining whether a candidate file is available; proceed (511) to access the article dataset 520 for determining whether a candidate file is available; proceed (512) to access the test dataset 525 for determining whether a candidate file is available; and proceed (513) to search online sources for obtaining online information. In response to determining a candidate file at any of the stages discussed above, the Al agent can proceed to select the file for use in resolving the request and this may occur at any of these stages according to a given request and the files that are currently stored by the system. Still referring to Figure 5c, the dashed arrow 523 represents an update for updating the test dataset 525 to include online information obtained from an online resource. The dashed arrow 522 represents an update for updating the article dataset 520 to include a new article file based on online information stored in the test dataset 525. The dashed arrow 521 represents an update for updating the automation dataset 510 to include a new automation file based on an article file stored in the article dataset 520. The updates 521, 522 and 523 are conditional on user feedback for a given file and / or online information satisfying a threshold condition. Online information that receives user feedback satisfying a threshold condition can be stored to the test dataset 525. The online information may be stored to the test dataset 525 without being processed, or may be processed to generate a test article file having a same file format as an article file stored by the article dataset 520 (e.g. conversion of information in a webpage to a suitable document format). Data stored in the test dataset 525 (i.e. online information or a test article file generated using the online information) that receives user feedback satisfying a threshold condition can be stored to the article dataset 520. An article file stored in the article dataset 520 that receives user feedback satisfying a threshold condition can be used for generating (by a user and / or Al) an automation file to be stored to the automation dataset 510. Generally speaking, stored data that receives positive user feedback can potentially move (e.g. by creating new files and retaining or removing the original file) between the datasets as shown by the arrows 521, 522 and 523 and may eventually result in an automation file being generated and stored. In this way, stored data that has a proven track record (based on the received user feedback) of success for resolving requests can be reliably identified from user feedback and the stored datasets 510, 520 and 525 can be updated accordingly for this. In particular, an article file with a proven track record of success (e.g. has received positive user feedback from at least 5 users, as an example of a suitable threshold) can be used to generate an automation file. As explained previously, the automation dataset 510 may be used as a first resolution path for resolving a request, and the article dataset 520 may be used as a second resolution path for resolving a request. In some embodiments of the disclosure, the test dataset 525 (if present) may be used as a third resolution path. If no candidate for resolving a request is available from the test dataset 525, the Al agent can be operable to search the online sources 530 to obtain online information for resolving the request as a fourth resolution path. The user feedback may be indicative of a user rating and may use any of a binary user rating scheme (e.g. positive or negative feedback) and multi-option rating scheme (e.g. star rating). In some examples, a browser user interface may display a positive feedback III element and a negative feedback III element (e.g. thumbs up / down or similar) for allowing user input for a binary user rating. A binary user rating scheme can allow user feedback that indicates one of: the candidate file or online information was successful for resolving the request; and the candidate file or online information was not successful for resolving the request. Hence, a binary user rating scheme can be particularly reliable for the techniques of the present disclosure. User feedback indicative of a user rating in respect of online information may be used to determine whether to store the online information to the test dataset 525. In particular, the Al agent may search the online sources 530 and obtain online information to be used for resolving a request, and a user may be provided with an option to provide user feedback regarding that online information. For example, the online information may be displayed to the user via a browser, and a selectable user interface element can be included for allowing user input indicative of feedback for the online information. Generally, the user can use the online information in the browser to attempt to resolve their request (e.g. using the online information as guidance for one or more steps) and provide feedback based on whether the online information assisted or was useful in resolving the request. In a similar manner, user feedback can be provided for any of the files stored in the test dataset 525, the article dataset 520 and the automation dataset 510. In some embodiments of the disclosure, the system 110 may be configured to receive user feedback indicative of a user rating for online information, and store the online information to the test dataset 525 (also referred to as a third dataset) in dependence on the user feedback. In particular, online information may be stored to the test dataset 525 together with an indication of the user feedback. This may be useful in that even online information, which has been obtained by the Al agent from an online source, for which the user feedback is negative can be stored and reviewed by an admin user (for potentially being refined / modified and implemented as a user-generated article file in the article dataset 520). In some embodiments of the disclosure, the system 110 may be configured to receive user feedback indicative of a user rating for online information and store the online information to the test dataset 525 in dependence on whether the user feedback is indicative of a positive user rating. In this way, the test dataset 525 may store respective instances of online information which have each received positive user feedback. Referring to the updates (represented by the dashed arrows 521, 522 and 523 in Figures 5a, 5b and 5c), a same or different threshold condition may be used for causing an update to the automation dataset 510, the article dataset 520 and the test dataset 530. In some embodiments of the disclosure, the system 110 may be configured to update the article dataset 520 (also referred to as the second dataset) to include an article file for online information in response to a first threshold condition defining a first threshold number of users, and to update the automation dataset 510 (also referred to as the first dataset) to include the automated file generated based on the stored article file in response to a second threshold condition defining a second threshold number of users, wherein the first threshold number of users is the same as or different from the second threshold number of users. In some examples, generating of a new automation file and updating the automation dataset 510 to include the new automation file may be performed in response to user feedback indicative of a positive user rating from at least N different users, where N may be a value in the range 5-20, for example. User feedback in relation to a given article file may be stored by the system 110. For example, the system 110 may store historical information for one or more article files to track a number of positive user ratings that have been received for the one or more article files. When the user feedback is indicative of positive user ratings from at least N different users, a notification can be generated for notifying a user and / or an Al agent to create an automation file. User feedback in respect of article files may be logged and the system may periodically assess the user feedback to identify article files for which the user feedback has triggered the threshold so that identified article files are either automatically targeted for automation or a notification is provided to at least one of an Al agent and a user that an automation file is to be generated based on the article. The Al agent may thus automatically generate the automation file in response to the notification or may schedule a time at which to generate the automation file. More generally, in some embodiments of the disclosure, in response to positive user feedback for a given stored article file from at least the threshold number of users, the system may provide a notification to at least one of: the Al agent discussed in relation to Figures 3 and 4; another Al agent (such as an automation-file generating Al agent); and a user for notifying that an automation file is to be generated based on the stored article file. The Al agent or the another Al agent can be operable to automatically generate the automation file in response to the notification. The system 110 may store a historical record to track a number of positive user ratings that have been received for a test file (e.g. test article file) in the test dataset 525. Updating of the article dataset 520 to include a new article file may be conditional whether the user feedback for the test file is indicative of positive user feedback from at least M different users, where M may be a value that is the same as N or may be different. For example, M may be a value in the range 2-20. In particular, a higher threshold value may be used for generating an automation file to be added to automation dataset 510 than for generating an article file to be added to the article dataset 525. This may contribute to improving reliability of the automation files and thus contribute to improving reliability for successfully resolving requests using stored automation files. In some examples, positive user feedback from at least 2 or 3 users may be required before a test file is used to create an article file and positive user feedback from at least 5 users may be required before an article file is used to create an automation file. These values represent examples of suitable threshold values and it will be appreciated that other values may be used. More generally, a higher threshold value may be used as a condition for generating an automation file based on an article file, and a lower threshold value may be used as a condition for generating an article file based on online information. Referring again to Figures 5a, 5b and 5c, creation of a new file in a dataset based on a stored file in another dataset may be accompanied by retaining the stored file in the another dataset, or disabling the stored file, or moving the stored file to other storage (e.g. archive storage). For example, the storage circuitry 210 may store an article file and an Al-generated automation file or user-generated automation file that has been generated based on that article file. This can potentially improve system reliability in that in the event that the automation file does not successfully resolve a client’s request, the Al agent can select the article file as a next attempt to resolve the request. Alternatively, in response to creating an automation file (or article file), the article file (or test file) that was used for creating the new automation file (new article file) may be removed from the dataset (e.g. archived). In some embodiments of the disclosure, negative user feedback may be provided for one or more files stored by any of the automation dataset 510, the article dataset 520 and the test dataset 525. Users may provide negative user feedback for a stored automation file when the running of that automation file does not successfully resolve the request. Similarly, users may provide negative user feedback for a stored article file (or stored test file) when the following the guidance included in the stored article file (or test file) does not successfully resolve the request. A binary rating scheme, such as a thumbs up / down, may be used. In some embodiments of the disclosure, the system 110 is configured to disable a stored file (e.g. stored automation file, stored article file or stored test file) and provide a notification to a user and / or an Al agent responsive to negative user feedback for the stored file from at least a threshold number of users. By disabling a file, that file can be excluded from analysis by the Al agent when determining whether the storage circuitry stores a candidate file for resolving a request. A disabled file can be flagged to a user and / or Al agent so that actions such as further testing or modification of the file, or permanent removal can be taken. In some embodiments of the disclosure, user feedback from at least a threshold number of users indicative of negative user feedback for a same file may result in the system 110 disabling that file, and the threshold number of users may be two. Accordingly, negative user feedback from a single user may not be sufficient for disabling a file. Negative user feedback from two users as a condition for disabling a file can guard against user error and improve reliability of accurately disabling files that do not allow successful request resolving. Referring again to Figure 4, the system 110 may perform the method 400 and select a stored automation file to be used for resolving the request. The step 450 may comprise automatically running or executing the stored automation file for the client or outputting the stored automation file for download by the client. Following this, if the stored automation file did not successfully resolve the request, the user may provide negative user feedback (e.g. selecting a thumbs down III element) and / or optionally may provide a text-based input to indicate this (and potentially other details). The system 110 may perform the method 400 again and this time may potentially bypass the step 431 to proceed to the step 432 to determine whether an article file is available for resolving the request. The step 450 may thus comprise outputting the article file (e.g. in a browser or as a downloadable file). If the stored article file did not successfully resolve the request, the user may provide negative feedback (e.g. selecting a thumbs down III element) and / or optionally may provide a textbased input to indicate this (and potentially other details such as potential faults in the article). The system 110 may perform the method 400 again and this time may potentially bypass the steps 431 and 432 to proceed to the steps 460 and 470 to obtain online information. Chat functionality may be used for sending requests indicative of IT queries, and conversational inputs from a user may be used for determining whether the request has been resolved and, if not, may be used as further IT queries for determining other files from the storage circuitry and / or searching online sources. More generally, in some examples a user may provides a series of prompts to the Al agent and the Al agent may use the techniques that have been discussed above to attempt to resolve the request. Hence, a request may specify an IT related query and, following an unsuccessful first attempt by the Al agent to resolve the request, a user may provide further prompts which the Al agent can analyse and use the datasets discussed in relation to Figures 5a-5c. In some examples, it may be determined that there is a permission related issue. For example, when following an article a user may not have the necessary permissions for one or more tasks and may provide a prompt to the Al agent to explain that there is a permission related issue. The Al agent may be operable to log a ticket including information for the permission related issue so that this can be assessed by a user. In other examples, a user may provide a prompt relating to an IT issue such a mouse issue. The Al agent may recommend a stored automation file for updating mouse drivers. If this does not successfully resolve the issue, the user may provide a further prompt indicating that the issue still persists and the Al agent may next recommend a stored article file including troubleshooting guidance for mouse issues. If the stored article file receives positive user feedback from users indicating that this successfully resolved their issue then this article file may be used for creating a corresponding automation file. If the stored article file does not successfully resolve the issue, then the user may provide a further prompt indicating that the issue still persists and the Al agent may next search online sources to provide information for potentially resolving the issue. Automation file generating The techniques of the present disclosure allow generating of automation files based on article files. An article file generally includes human-readable information for one or more IT tasks and may for example include a step-by-step guide for a user to follow. For example, an article file may correspond to a PDF, word or other similar file format including human-readable text. The techniques of the present disclosure may use Al to generate an automation file comprising code (e.g. script or source code) that can be used to control a computing device. In particular, stored article files that have received positive user feedback can be targeted for processing using Al to generate an automation file, and code can be automatically generated using any suitable programming language for writing scripts and / or programs. Scripting languages such as PHP, JavaScript, Python, Bash and so on may be used. In the techniques of the present disclosure, one or more Al agents may access an article file to generate an automation file based on that article file. In some cases, a same Al agent may be responsible for the techniques discussed above in relation to Figures 3 and 4 and also for generating an automation file based on an article file. In other cases, one or more dedicated automation-file generating Al agents may be provided specifically for generating an automation file based on an article file. In the following discussion references to an Al agent refer to the same Al agent responsible for techniques discussed above in relation to Figures 3 and 4 or one or more other Al agents dedicated to automation-file generating. More generally, the Al agent responsible for automation file generating is not particularly limited and some embodiments of the disclosure may use a dedicated Al agent for this purpose. Referring to Figures 6 and 7, in some embodiments of the disclosure an Al agent (or one or more Al agents) is operable to: access (at a step 710) an article file stored by the storage circuitry 210; generate (at a step 720) an automation file in dependence on the article file; and store (at a step 730) the automation file to the storage circuitry 210. Accordingly, the storage circuitry 210 may store one or more an Al-generated automation files which can be used in any of the techniques discussed above (e.g. in the methods 300 and 400). Figure 8 is a schematic flowchart illustrating an example method 800 using an Al agent to generate an automation file. The method comprises: reading (at a step 810) an article file; generating (at a step 820) an automation specification in dependence on information read from the article file; generating (at a step 830) code in dependence on the automation specification; performing (at a step 840) a test run using the code; and storing (at a step 850) an automation file comprising the code in dependence on an outcome of the test run. The automation specification may include an intended purpose for the code that is to be generated, pre-requisites for the code (e.g. hardware, software, platform and / or network requirements), and steps for achieving the intended purpose. The automation specification can then be used for generating code (e.g. a script) for achieving automation of the steps, and a test run is performed using the code. In particular, an automation specification may include a list of custom steps in order, and from which code can be generated with corresponding functions in order for enabling automation of the steps listed in the automation specification. An outcome of the test run may indicate whether the was code successful, and depending on the outcome an automation file may be stored including the code. Figure 9 is a schematic flowchart illustrating a more detailed example using an Al agent to generate an automation file. The steps 910 and 920 are the same as the steps 810 and 820 discussed above with respect o Figure 8. The method 900 comprises, reviewing (at a step 930) the automation specification, and updating (at a step 940) the automation specification to obtain an updated automation specification. Accordingly, the automation specification can be reviewed and updated prior to generating the code. The method 900 comprises, generating (at a step 950) code in dependence on the updated automation specification, performing (at a step 960) a test run using the code, generating (at a step 970) an output file for the test run; optionally comparing (at a step 980) the output file with a reference file; and storing an automation file or updating the code (at a step 990) depending on the output file. In the case of updating the code, the method loops back (as shown by the dashed arrow in Figure 9) to the step 960 to perform another test run using the updated code (i.e. updated code generated at the step 990) and the steps 960-990 can be repeated in respect of the updated code. It will be appreciated that the steps 960-990 may thus be performed once (in the case that the generated code is successful on the first test run) or may be performed two or more times until the generated code is successful in providing an automation for the article file from which it has been generated. The steps 910-990 may be performed by a same Al agent (e.g. the Al agent discussed in relation to Figures 3 and 4, or one or more dedicated automation-file generating Al agents). In some cases, the steps 910-990 may be performed using a plurality of Al agents with respective Al agents being responsible for specific operations. In some embodiments of the disclosure, a first Al agent may perform operations for reading an article file and generating an automation script, a second Al agent may perform operations for reviewing an automation specification, and a third Al agent may perform operations for generating code in dependence on an automation specification, performing a test run for the code and updating the code. In some examples, the first Al agent may be an automation specification writing agent, the second Al agent may be a reviewer agent, and the third Al agent may be a code writing and testing agent. In particular, the steps 910, 920 and 940 may be performed by the first Al agent, and the step 930 may be performed by the second Al agent. Accordingly, the first Al agent may be tasked with generating an automation specification, and the second Al agent may be tasked with reviewing the automation specification and providing feedback to the first Al agent for the automation specification. The first Al agent can thus be operable to use the initial automation specification and the feedback provided for the initial automation specification to generate an updated specification. Figure 9 illustrates an example in which there is a single review and update of the automation specification, however, it will be appreciated that there may be a plurality of review stages and automation specifications may be reviewed and updated in an iterative manner. For example, following the step 940 the method may loop back to the step 930 to review the updated automation specification and provide feedback for the updated automation specification, and a second update may be made at the step 940 to obtain another updated automation specification. The steps 930 and 940 may be carried out with the second Al agent reviewing the automation specification and the first Al agent updating the automation specification, and the second Al agent may generate feedback in the form of natural language prompts that can be input to the first Al agent for use in modifying an automation specification. Accordingly, the first Al agent and second Al agent may co-operate to iteratively update an automation specification which can then be used for generating code. The steps 950-990 may be performed by the third Al agent to generate code in dependence on the automation specification and perform a test run for the code, and potentially update the code depending on an outcome of the test run. In some examples, a fourth Al agent may be provided for generating code in dependence on an automation script. This fourth Al agent may be dedicated to conversion of an automation script to code (e.g. a script). Accordingly, the step 950 may be performed by the fourth Al agent and the steps 960-990 may be performed by the third Al agent to make updates to the code depending on the outcome(s) of the test run(s). More generally, the method 900 may be implemented using one or more Al agents at least some of which may use generative pretrained transformers (GPTs), such as Open Al’s Chat GPT among others. The method 900 may comprise a first iterative loop for iteratively updating an automation specification, and a second iterative loop for iteratively updating code. More generally, in some embodiments of the disclosure the processing circuitry 220 may be configured to run one or more Al agents operable to: access an article file stored by the storage circuitry 201; generate an automation file in dependence on the article file; and store the automation file to the storage circuitry 210. In particular the one or more Al agents may be operable to: read the article file; generate an automation specification in dependence on the article file; review the automation specification and update the automation specification to obtain an updated automation specification; generate code in dependence on the updated automation specification; perform a test run using the code; and store the automation file including the code in dependence on an outcome of the test run. The steps 960-990 relate to performing a test run for the code and using an outcome of the testing to either store an automation file or perform one or more updates obtain updated code for further testing. The step 960 may comprise running a script, or compiling source code and executing object code. An output file can be generated which provides an indication of whether the code was successful in achieving automation of the article file. For example, the output file may include one or more error messages indicative of failure. Accordingly, in some example presence / absence of an error message in the output file may be used to determine whether to proceed with storing an automation file including the code. Alternatively or in addition, an output file may include one or more parameters and analysis of one or more of the parameters may indicate whether the code is successful or not. one or more of the parameters may be analysed using Al to determine whether the code is successful or has failed and if so, one or more reasons for the failure. In the case of a failed test, one or more reasons for the failure can be used as feedback for determining modifications to be made to the code. For example, in the case of a test failure, the output file may be analysed and a prompt may be generated to query whether the function calls, commands and so on are ordered correctly. Such a query may be input to a GPT, such as Open Al’s ChatGPT to obtain feedback as to whether to modify the ordering. In some examples, a prompt may be more specified and may ask an Al agent what code should be used before and / or after a given piece of code. In some examples, an output file generated from performing a test run may be compared with a reference file to determine whether one or more differences are present between the output file and the reference file. This is an optional step as indicated by dashed box at step 980 in Figure 9. In some examples, a user may follow step-by-step guide included in an article file to perform one or more IT tasks and an output file generated for the article file may be used as the reference file. For example, upon reaching an end of the instructions in the article file, a command may be run to obtain one or more parameters which can be stored as a reference file. Accordingly, such a reference file may be used for comparison with an output file and differences between the two files can indicate that the code was not successful and also potentially reasons for why the code was not successful. It will be appreciated that there can be potentially wide-ranging use cases. In one example, an article file may comprise human-readable information indicative of a series of actions for updating drivers for a given peripheral device, and a corresponding automation file may comprise code which, when run or executed by a computing device, automatically updates the drivers for the given peripheral device. In another example, an article file may comprise human-readable information indicative of a series of actions for updating security configuration settings (such as modifying security settings for different users of a device, system, network, organisation and so on), and a corresponding automation file may comprise code for automatically updating the security configuration settings. For example, access permissions may be updatable to permit or deny access to certain functions for certain users, and an admin user may firstly create an article file providing guidance on how to manually update the access permissions so that a user can refer to the article file and update the access permissions for a given user (e.g. to remove access or add access). Such an article file may be used to create an automation file so that the automation file can be used for automatically updating access permissions. Referring now to Figure 10, a method in accordance with embodiments of the disclosure comprises: receiving (at a step 1010) a request from a client, the request being indicative of at least one IT query; accessing (at a step 1020) storage circuitry storing a first dataset comprising one or more stored automation files and a second dataset comprising one or more stored article files comprising human-readable information for one or more IT tasks; analysing (at a step 1030) the request and determining whether the storage circuitry stores a candidate file for resolving the request; and in response to determining that the storage circuitry stores a candidate file for resolving the request, selecting (at a step 1030) the candidate file to be used for resolving the request, wherein the candidate file is one of a stored automation file and a stored article file. The invention may also broadly consist in the parts, elements, steps, examples and / or features referred to or indicated in the specification individually or collectively in any and all combinations of two or more said parts, elements, steps, examples and / or features. In particular, one or more features in any of the embodiments described herein may be combined with one or more features from any other embodiment(s) described herein. Although certain example embodiments of the invention have been described, the scope of the appended claims is not intended to be limited solely to these embodiments. The claims are to be construed literally, purposively, and / or to encompass equivalents. When used in this specification and claims, the terms "comprises" and "comprising" and variations thereof mean that the specified features, steps or integers are included. The terms are not to be interpreted to exclude the presence of other features, steps or components. It will be appreciated that example embodiments can be implemented by computer software operating on a general purpose a computing system. In these examples, computer software, which when executed by a computer, causes the computer to carry out any of the methods discussed above is considered as an embodiment of the present disclosure. Similarly, embodiments of the disclosure are provided by a non-transitory, machine-readable storage medium which stores such computer software. It will also be apparent that numerous modifications and variations of the present disclosure are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the disclosure may be practised otherwise than as specifically described herein.
Claims
1. A system comprising:storage circuitry to store a first dataset comprising one or more stored automation files and a second dataset comprising one or more stored article files comprising human-readable information for one or more IT tasks; andprocessing circuitry to run an artificial intelligence “Al” agent to:receive a request from a client, the request being indicative of at least one IT query;analyse the request and determine whether the storage circuitry stores a candidate file for resolving the request; andin response to determining that the storage circuitry stores a candidate file for resolving the request, select the candidate file to be used for resolving the request, wherein the candidate file is one of a stored automation file and a stored article file.
2. The system according to claim 1, wherein the Al agent is operable to analyse the request and determine whether the first dataset comprises a stored automation file for resolving the request as a first resolution path, and determine whether the second dataset comprises a stored article file for resolving the request as a second resolution path.
3. The system according to claim 1 or claim 2, wherein the one or more stored automation files comprise an Al-generated automation file, wherein the Al-generated automation file has been generated based on an article file currently stored or previously stored by the storage circuitry.
4. The system according to any preceding claim, wherein in response to determining that the storage circuitry does not store a candidate file for resolving the request, the Al agent is operable to search online sources and obtain online information to be used for resolving the request.
5. The system according to claim 4, wherein the Al agent is operable to search one or more public websites previously classified as being reliable sources.
6. The system according to claim 4 or claim 5, wherein the system is configured to receive user feedback indicative of a user rating for the online information and store the online information to the storage circuitry in dependence on the user feedback.
7. The system according to claim 6, wherein the Al agent is operable to:receive a second request from another client, the second request being indicative of a same IT query;analyse the second request and determine that the storage circuitry stores the online information for resolving the request; andselect the online information to be used for resolving the second request.
8. The system according to claim 6 or claim 7, wherein the system is configured to update the second dataset to include a stored article file corresponding to the online information responsive to whether user feedback for the online information is indicative of positive user feedback from at least a threshold number of users.
9. The system according to claim 4 when dependent on claim 2, wherein the Al agent is operable to search the online sources and obtain the online information for resolving the request as a third resolution path.
10. The system according to claim 6 when dependent on claim 2, wherein the system is configured to store the online information to a third dataset, and wherein in response to receiving a second request from another client the Al agent is operable to determine whether the third dataset comprises a candidate file for resolving the second request as a third resolution path, and wherein the Al agent is operable to search the online sources for resolving the second request as a fourth resolution path.
11. The system according to any preceding claim, wherein the system is configured to update the first dataset to include an automated file generated based on a stored article file responsive to whether user feedback for the stored article file is indicative of positive user feedback from at least a threshold number of users.
12. The system according to claim 11, wherein in response to positive user feedback for the stored article file from at least the threshold number of users, the system is configured to provide a notification to at least one of the Al agent, another Al agent and a user that an automation file is to be generated based on the stored article file.
13. The system according to claim 12, wherein the Al agent or the another Al agent is operable to automatically generate the automation file in response to the notification.
14. The system according to any one of claims 11 to 13, wherein the system is configured to:update the second dataset to include the stored article file for the online information in response to a first threshold condition defining a first threshold number of users; andupdate the first dataset to include the automation file generated based on the stored article file in response to a second threshold condition defining a second threshold number of users, wherein the first threshold number of users is the same as or different from the second threshold number of users.
15. The system according to any preceding claim, wherein the processing circuitry is configured to run one or more Al agents to:access an article file stored by the storage circuitry;generate an automation file in dependence on the article file; and store the automation file to the storage circuitry.
16. The system according to claim 15, wherein the one or more Al agents are operable to:read the article file;generate an automation specification in dependence on the article file;review the automation specification and update the automation specification to obtain an updated automation specification;generate code for an automation file in dependence on the updated automation specification;perform a test run using the code; andstore an automation file including the code in dependence on an outcome of the test run.
17. The system according to any preceding claim, wherein the system is configured to disable at least one of a stored automation file and a stored article file and provide a notification to at least one of a user and an Al agent responsive to negative user feedback from at least a threshold number of users.
18. The system according to claim 17, wherein the threshold number of users is two.
19. The system according to any preceding claim, wherein the request comprises natural language and the Al agent is operable to: analyse the natural language and determine an IT query; and determine whether the storage circuitry stores a candidate file for resolving the IT query.
20. The system according to any preceding claim, wherein the system is configured to output at least one of: a downloadable file corresponding to the candidate file; and web user interface information for the candidate file.
21. The system according to any preceding claim, wherein the system is configured to run or execute a stored automation file in response to selection of the stored automation file by the Al agent.
22. A computer-implemented method comprising:receiving a request from a client, the request being indicative of at least one IT query; accessing storage circuitry storing a first dataset comprising one or more stored automation files and a second dataset comprising one or more stored article files comprising human-readable information for one or more IT tasks;analysing the request and determining whether the storage circuitry stores a candidate file for resolving the request; andin response to determining that the storage circuitry stores a candidate file for resolving the request, selecting the candidate file to be used for resolving the request, wherein the candidate file is one of a stored automation file and a stored article file.
23. A computer program comprising instructions which, when executed by a computer, cause the computer to perform the method according to claim 22.