Chatbot system

A modular conversational agent system optimizes resource use and response quality by distributing tasks among specialized modules, addressing inefficiencies and inaccuracies in existing systems.

WO2026046969A1PCT designated stage Publication Date: 2026-03-05ODONATECH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2025/074231
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-08-30
Filing Date
2025-08-26
Publication Date
2026-03-05

AI Technical Summary

Technical Problem

Conversational agent systems based on large language models face challenges such as high resource consumption, inaccurate responses, and limited scalability, often reinforcing stereotypes and propagating misinformation.

Method used

A modular conversational agent system with distinct modules for finite state machine management, information extraction, and conversational content generation, optimized for resource efficiency and response quality, allowing adaptation to specific constraints without modifying the entire system.

Benefits of technology

The system minimizes computing power requirements, reduces response time, and maintains high-quality responses while enabling domain-specific adaptations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2025074231_05032026_PF_FP_ABST
    Figure EP2025074231_05032026_PF_FP_ABST
Patent Text Reader

Abstract

One aspect of the invention relates to a chatbot system (100) the architecture of which distributes tasks to various modules. Thus, each module has one or more tasks to be performed. The control module (140) in particular has the task of organising the operation of the system (100). It thus controls the other modules, which can therefore be considered to be support modules of the control module. The other modules, i.e. the modules said to be support modules, are therefore specialised in one task such as generation of conversational content, extraction of information or even management of a finite state machine.
Need to check novelty before this filing date? Find Prior Art

Description

DESCRIPTION TITLE: Conversational Agent System TECHNICAL FIELD OF THE INVENTION

[0001] The technical field of the invention is that of conversational agents.

[0002] The present invention relates to a conversational agent system and a method for operating this conversational agent system. TECHNOLOGICAL BACKGROUND OF THE INVENTION

[0003] A conversational agent, also called a dialoguer or chatbot, is a software agent that interacts with a user. The user is prompted to formulate their request in natural language, which is then refined through a dialogue between the user and the conversational agent. The software agent then interprets the messages sent by the user into an operational request understandable by its information system. In this context, a conversational agent system is a system adapted to implement a conversational agent. In other words, a conversational agent system is a system comprising the implementation tools necessary for the operation of a conversational agent. The dialogue between the user and the conversational agent can be conducted via written messages, as well as voice or video messages.Thus, the chatbot simulates written, voice, or video human communications to replace a conversation with a real human being.

[0004] Conversational agent systems have seen significant success, particularly since the advent of large language models (LLMs). These LLMs are deep neural networks trained on large amounts of unlabeled text using self-supervised or semi-supervised learning. In this application, for simplicity only, the term "large language model" is also used to refer to a multi-agent system, i.e., a set of large language models working together, such as MetaGPT. It is generally accepted that the quality of the output of LLMs varies depending on the amount of resources provided, such as parameter size, computing power, and the amount of Training data. Conversational agent systems are now used in many fields, for example: in industry, to guide or advise a user during a complex task such as engine maintenance or repair; in transportation, to guide or advise a user during travel; in logistics, to help managers navigate a large, moving inventory; in marketing, to research competitors or identify content similar to that produced by the company; and in highly technical fields (chemicals, nuclear energy, etc.).), to obtain very precise technical information, which is otherwise difficult to find on the internet, in the media and in publishing, to translate documents, write first drafts of articles, or even sometimes react to reader comments more quickly, in finance, for example to guide or advise a user wishing to invest their savings.

[0005] However, current chatbot systems based on massive language models have many limitations. First, training and using the massive language models employed by these chatbot systems requires significant resources. For example, to limit the response time of massive language models, it is common to increase the computing power of the system implementing the model. Furthermore, chatbot systems can provide responses that are more or less appropriate and accurate. For instance, it is known that the responses provided by these chatbot systems can suffer from linguistic biases, reinforce stereotypes, or even propagate misinformation. Finally, as Siyu Yuan et al. mention...in "EvoAgent: Towards Automatic Multi-Agent Generation via Evolutionary Algorithms" (July 1, 2024), the functional scope and scalability of agent systems remains largely. dependent on frameworks designed by the designers. Thus, as Siyu Yuan et al. remind us, providing a conversational agent system capable of solving diverse tasks remains, at present, a major challenge.

[0006] There is therefore a need to provide a conversational agent system that limits, at least in part, the problems associated with the use of the aforementioned prior art conversational agent systems. SUMMARY OF THE INVENTION

[0007] The invention offers a solution to the problems mentioned above by providing a conversational agent system whose architecture distributes tasks among different modules. Each module has one or more tasks to perform. The control module, in particular, is responsible for organizing the system's operation; it commands the other modules, which can therefore be considered support modules. These other support modules are specialized in tasks such as generating conversational content, extracting information, or managing a finite state machine.

[0008] One aspect of the invention relates to a conversational agent system configured to converse with a user, comprising: A finite state machine management module configured to identify a current state of the finite state machine from an initial request, the current state corresponding to the state of the machine after receiving the last message sent by the user during the dialogue between the chatbot system and the user, and the initial request comprising: the finite state machine describing the dialogue logic, a previous state of the finite state machine, the previous state corresponding to the current state of the machine before receiving the last message sent by the user during the dialogue, the number of exchanges performed since a transition to the previous state, and a dialogue history including the entire dialogue, including the last message sent by the user, An information extraction module configured to extract information from messages sent by the user during the dialogue from a second query, the second query including the history of the dialogue. A conversational content generation module configured to generate a proposed response to the last message sent by the user based on a third request, the third request including: The information extracted by the information extraction module, Information specific to the current state identified by the management module of a finite state machine, A control module configured for: Receive messages sent by the user during the dialogue, Generate the first, second, and third queries. Obtain the current state of the finite state machine by sending the first request to the finite state machine management module. Obtain the extracted information by sending the second request to the information extraction module. To obtain the proposed response to the last message, send the third request to the conversational content generation module, and Reply to the last message sent by the user with a response based on the proposed response generated by the conversational content generation module.

[0009] Thanks to the invention, the chatbot system limits its resource consumption, particularly in terms of computing power. necessary for its operation. Furthermore, response time is minimized while maintaining a high quality of response. Finally, this architecture allows the characteristics of each module to be adapted to specific constraints without having to modify the entire chatbot system.

[0010] In addition to the features mentioned in the preceding paragraph, the system, according to one aspect of the invention, may have one or more of the following complementary features, considered individually or in all technically possible combinations: a conversational content correction module configured to determine whether it is necessary to modify or delete the response proposal generated by the conversational content generation module from a fourth request; the modification or deletion of the response proposal generated by the conversational content generation module being necessary when the generated response proposal does not comply with a rule from a set of predefined rules; the fourth request comprising: the response proposal generated by the conversational content generation module, the set of predefined rules,and in which the control module is further configured to: Generate the fourth query, Obtain the order to modify or delete the response proposal generated by the conversational content generation module, and Once the order has been obtained: o Generate a fifth query including: • The information extracted by the information extraction module, • Information specific to the current state identified by the management module of a finite state machine, and Information regarding the rule not being followed by the additional conversational content generation modules, each of the additional conversational content generation modules being configured to generate an additional response suggestion to the last message starting from the third request, and in which the control module is further configured to: Obtain additional response suggestions to the last message by sending the third request to the additional conversational content generation modules, and Respond to the last message sent by the user with a response based on: o the proposed response generated by the conversational content generation module, and o the additional proposed responses generated by the additional conversational content generation modules.The additional conversational content generation modules have a specific performance level, the performance being linked to a specialization in a specific domain and / or a specific resource consumption, the control module is further configured to select at least one additional conversational content generation module to which to send the third request to obtain at least one additional response proposal, the selection being based on the specific performance level of at least one additional conversational content generation module, the second request further includes a JSON type file, and the information extraction module is further configured to add the extracted information to the JSON type file, the first request further includes the information extracted by the information extraction module, and. The finite state machine management module is further configured to identify the current state of the finite state machine by taking into account the extracted information included in the first query; the extracted information included in the first query is used by the finite state machine management module as a condition to transition from the previous state to the current state.

[0011] Another aspect of the invention relates to a method for operating a chatbot system according to the invention, the method comprising, for each iteration of a set of iterations, the steps of: The control module receives the last message sent by the user during the dialogue between the chatbot system and the user. The control module generates the first query. The control module sends the first request to the finite state machine management module. Identification, by the finite state machine management module, of the current state of the finite state machine. The finite state machine management module sends the current state of the finite state machine to the control module. The control module generates the second request to the information extraction module. Extraction of information, by the information extraction module, from messages sent by the user during the dialogue. The extracted information is sent from the data extraction module to the control module. Generation, by the control module, of a third request, The third request is sent by the control module to the conversational content generation module. The conversational content generation module generates a suggested response to the user's last message. The conversational content generation module sends the proposed response to the control module, and The control module generates a response to the user's last message, based on the proposed response generated by the conversational content generation module, and The control module sends the response to the last message sent by the user.

[0012] In addition to the characteristics mentioned in the preceding paragraph, the process according to one aspect of the invention may have one or more additional characteristics from among the following, considered individually or in all technically possible combinations: initial steps: The reception, by the conversational content correction module, of the last message sent by the user during the dialogue between the chatbot system and the user is secure. When the last message does not comply with the rule of the predefined rule set, the last message is modified or deleted by the conversational content correction module.

[0013] An additional aspect of the invention relates to a computer program product comprising instructions which, when the program is executed by the system according to the invention, cause the system to implement a process according to the invention.

[0014] A final aspect of the invention relates to a non-transient, computer-readable data carrier on which a computer program according to the invention is recorded.

[0015] The invention and its various applications will be better understood by reading the following description and examining the accompanying figures. BRIEF DESCRIPTION OF THE FIGURES

[0016] The figures are presented for illustrative purposes only and are in no way limiting to the invention. Figure 1 shows a schematic representation of an example of a conversational agent system according to the invention. Figure 2 is a synoptic diagram illustrating the steps of an example of the method of operating the conversational agent system according to the invention. DETAILED DESCRIPTION

[0017] Unless otherwise specified, the same element appearing on different figures has a unique reference.

[0018] A first aspect of the invention relates to a conversational agent system.

[0019] Figure 1 shows a schematic representation of an example of a conversational agent system 100 according to the invention. The system 100 is configured to converse with a user. The user is, for example, a person needing advice or information to complete a task. Thus, the user can ask one or more questions to the conversational agent system 100 by sending one or more messages 101 as part of a dialogue. The conversational agent system 100 provides one or more answers 102 to the user in order to advise or inform them. The messages 101 and answers 102 can be text, voice, or video.

[0020] System 100 can, for example, be a computer or any system comprising a processor coupled with memory and a graphical user interface (GUI), the memory containing a computer program with instructions to implement the process. The memory can also store a database. Memory is any hardware suitable for such storage, possibly comprising several distinct physical parts. The finite state machine, for example, can be stored in the memory of System 100. System 100 can also have a distributed architecture, with all of its modules running on a server configured to: receive messages 101 from the user, sent via a client system of said server, and send replies 102 to the user.

[0021] Alternatively, in a distributed architecture, some modules of System 100 can run on the server and other modules directly on the user's client system. For example, the conversational content correction module (Module 150) runs on the user's client system, while the other modules of System 100 run on a server.

[0022] System 100 includes a module 110 for managing a finite state machine. Module 110 is configured to identify a current state within a finite state machine. In this application, the term "finite state machine" describes any tool that allows for describing the logic of a possible conversation between the user and the agent system 100 and, consequently, organizing the operation of System 100. Each state of the finite state machine can therefore correspond to a state in the dialogue between the user and the agent system 100. For example, the first state of a finite state machine might correspond to a free-flowing discussion or user introduction stage. Subsequent stages might correspond to advisory or informational states in a specific domain.Identifying the current state in the finite state machine therefore corresponds to determining whether the last message 101 sent by the user and received by the agent system 100 requires a change in the current state. In other words, if the received message does not allow a change of state, then the current state corresponds to the previous state. Conversely, if the received message allows a change of state, then the current state corresponds to a state following the previous state in the finite state machine. The previous state in the finite state machine corresponds to the current state of the machine before the receipt of the last message 101. For example, for a finite state machine comprising two states: an initial state and a final state, the previous state could be the initial state, and identifying the current state in the finite state machine corresponds to determining whether the received message 101 allows us to consider the current state as now the final state or, conversely, that the current state remains the initial state.The finite state machine can also be implemented by a module responsible for coordinating other modules by taking into account the last message 101, the conversation history and the data from module 120. The module can for example coordinate the other modules by referring to one or more state machines. Finite state machines can be implemented more flexibly, for example, by not deterministically respecting the conditions for transitioning from one state to another, or by creating a new state, for example, by hybridizing two states of a finite state machine, etc. Such a module can be obtained, for example, by calling one or more massive language models whose prompts instruct them to perform tasks, such as weighting, freedom, or hybridization, taking into account contextual information from the conversation, such as the last message received, the history, and information from databases. It is also possible to implement such a module more explicitly, for example, by weighting the relevance of several states of the state machine and asking a massive language model to generate a prompt combining the different states with the indicated weighting. Module 110 is also configured to receive an initial request.The first request includes various elements that allow module 110 to obtain the necessary information to manage a finite state machine. Specifically, the first request includes the finite state machine describing the dialogue logic. It also includes information to identify the previous state of the finite state machine, such as its name or identifier. Furthermore, the first request includes the number of exchanges performed since the transition to the previous state and / or since the start of the conversion. Thus, if a large number of exchanges, i.e., messages exchanged, have already occurred in the previous state, the transition to another state can be facilitated or even enforced. This limits the number of messages exchanged and therefore prevents unnecessary resource consumption.The first query includes the dialogue history, that is, all the messages sent by the user to system 100 and all the responses 102 generated by system 100. Optionally, the set of states that could be the current state can also be added to the first query. The set of states that could be the current state corresponds to the set of states following the previous state in the finite state machine. When the set of states that could be the current state is specified, module 110 is guided to identify the current state, which can reduce the time required to identify the current state. The first query can also include additional information available to system 100, such as information about the user, for example, authorization to enter a particular state of the finite state machine, or variables. various, for example the user's location in a warehouse. Other specialized modules, such as the other modules of system 100, such as module 120, can also transmit information to module 110, for example to determine if a value has been provided to system 100, for example a scanned barcode in the case of logistics, or if certain information is available in the Retrieval-Augmented Generation (RAG) database, commonly called RAG, in order for example to exploit a frequently asked questions (FAQ) section, facilitating answers to common questions, and thus allowing the use of a massive language model or even no massive language model if the FAQ entry exactly matches the user's message.The first query can finally include any other information available and necessary to determine the current state, whether in a database, produced by another module of system 100, or transmitted to module 110 by any means, for example, a programming interface. For example, a state of the finite state machine might only be accessible when a variable v takes a certain value V: therefore, module 110 must receive this value V, for example, provided by module 140, or obtained by module 110 via a database, an API, or other means. Data of type "variable v - value V", or pair "variable v - value V", is also frequently called a key-value pair.

[0023] In one example, module 110 can be implemented in a purely deterministic manner. Thus, the transition from one state to another in the finite state machine depends on a predetermined condition. For example, the transition from a first state to a second state might depend on the agent system receiving one or more pieces of information. Alternatively, module 110 can be implemented using a neural network specifically developed and trained to manage a finite state machine. The neural network can even be specifically trained to manage a particular type of finite state machine, or even a predefined finite state machine, such as one describing the logic of a dialogue for a user needing financial advice. An example of such a neural network is a classic three-layer neural network.The first layer of the classical neural network can receive an embedding of previous messages and the identifier of the previous state of the machine. state, called state n. The second layer of the classical neural network is smaller than the first layer. The third layer of the classical neural network encodes the next state of the state machine, called state n+1. This network is trained in a supervised manner on conversation histories. Thus, the target variable, i.e., state n+1, is pre-defined, for example by humans, in the data used to train the classical neural network. Alternatively, module 110 can also be implemented using generative artificial intelligence, for example, a neural network such as Llama 3.1 70B or Mistral Large. In this case, a training dataset is not required. Instead, module 110 simply needs a prompt that allows it to decide on the next state by analyzing previous exchanges. The prompt can include different parts.The first part of the prompt can explain to the bot that its task is to manage the state machine. The second part can include the history of previous exchanges. The third part can indicate state n. The fourth part can indicate the possible states n+1. The fifth part can specify the information the bot must provide in return. For example, the fifth part could be a sentence such as: "Taking into account the information above, respond with a number corresponding to the identifier of state n+1 that the machine must now assume." This approach is very economical because the cost, in terms of resources consumed, of generative artificial intelligence depends on the length of its response; here, the response can be a single number. Finally, it is also possible to use "pooling," that is, to have several Mi modules predicting state n.Each Mi module can have a slightly different prompt and can rely on a different generative AI. State n is then chosen by combining the responses given by the Mi modules. For example, the most frequent response among the responses of the Mi modules. This implementation example allows for "smoothing" the errors of each Mi module, and therefore a more reliable module 1 10. Furthermore, by using small generative AI models for each Mi module, it is possible to avoid excessive energy consumption.

[0024] System 100 also includes an information extraction module, 120. Module 120 is configured to extract information from messages. sent by the user during the dialogue. Module 120 is also configured to receive a second request. This second request includes the elements necessary for Module 120 to extract information from the messages sent by the user during the dialogue. Specifically, the second request includes the dialogue history, that is, all the messages 101 sent by the user to System 100 and all the responses 102 generated by System 100. Optionally, the second request can also include the current state of the finite state machine. This allows Module 120 to extract information specific to the current state. For example, if a condition for transitioning from the first to the second state of the finite state machine is knowing the user's age, Module 120 can search for and extract this information.In other words, module 120, when the current state is the first state, can specifically search for and extract the user's age from the dialogue history. Information extraction can also involve inferring information that isn't necessarily explicitly stated in the user's messages. For example, if the user specifies that they drive a car, module 120 can extract information such as the user having a driver's license and being over 18 years old if the user is French. The second query can also include other data known to system 100. For example, the second query can include information about the user, such as from databases or previously extracted by module 120.For example, if a user indicates they are repairing a car in message m, and then specifies the car model in message m+5, module 120 will be able to understand that the "user action" variable needs to be amended, potentially changing from "repairing a car" to "repairing a 2001 Renault Twingo 2". Another example is when a list of options is available. For instance, if module 120 has a list of heat pump models, it will more easily recognize in the messages that the reference "IKKK455U-BH" is a heat pump reference. To obtain this information, module 120 can independently access databases, programming interfaces, and other RAG systems, or it can delegate this task to module 140, which will then simply transmit the results.Module 120 is generally implemented by artificial intelligence but can be implemented deterministically when the expected possible values ​​are precisely known. It is also possible to... Combining several artificial intelligences, one using Named Entity Recognition (NER) techniques to identify the type of information present in messages, and a second analyzing the values ​​themselves, can lead to better recognition and / or naming of the values ​​found in messages, as well as more effective subsequent use of this information. In particular, it is possible to enrich conversation history with the information generated by Named Entity Recognition.

[0025] In an example consistent with the previous ones, module 120 can be used in both "read" and "write" modes. In "read" mode, module 120 can extract and structure data from the exchanges within the conversation in order to send this data to a third-party system, such as a database, a customer relationship management (CRM) system, or an enterprise resource planning (ERP) system like SAP. In "write" mode, the system is used to enrich the prompt or to determine transitions. Furthermore, a third-party system, such as a CRM, can also add to or modify the data in module 120 at any stage of process 100.

[0026] In an example consistent with the previous examples, module 120 can be implemented using a neural network. This neural network can be specifically developed and trained to extract information, perhaps even within a specific domain. This neural network could be a generative artificial intelligence. An example of a prompt provided to this AI might be: "Collect from the user's last message m, and taking into account the conversation history h, any information that will be useful to complete task t. I have already collected some information, which is as follows, in a JSON file: [file]. Respond as a structured JSON file, respecting this same syntax. Finally, note that I expect the user to specify a car model in their response."If so, complete my file above, indicating the model and brand (if you know it), without modifying the details provided by the user. If they provide other information, add it, unless it is personal, medical, financial, or confidential data. It should be noted that it is possible in some cases to implement module 120 of [the system / tool]. in a deterministic manner. For example, when the keywords to be identified are known, it is possible to perform a syntactic analysis of the messages to search for these keywords. In the case of a coupling between a 110 module and a 120 module, it is not uncommon that, depending on the task and the finite state machine involved, some states require complex analysis via artificial intelligence, and others a trivial deterministic analysis.

[0027] In one example, consistent with the previous examples, the information extracted by module 120 consists of "variable v - value V" pairs. Extracting such information is more computationally expensive than extracting tags, but this extracted information improves the reliability and accuracy of the generated responses.

[0028] In an example consistent with the previous ones, the information extracted by module 120 is added to a file. This file can therefore contain all the information extracted since the beginning of the dialogue. Alternatively, the file can be specific to a user or even to a business or company of which the user is an employee or customer. The file can be added in the second request. For example, the file is of type JSON. Thus, module 120 is configured to add the extracted information to the JSON file, which is particularly well-suited for storing extracted information as "variable v - value V" pairs. This file can then be stored in the memory of the chatbot system 100. Thus, instead of storing the entire dialogue, only the relevant information is stored by system 100.Furthermore, data extraction can be used to comply with certain rules such as data anonymization, access control, and / or data encryption. Finally, the storage method can vary. For example, storing information in a file can be replaced by storing it in a structured or unstructured database, or any other compatible storage method.

[0029] In an example consistent with the previous examples, the information extracted by module 120 is added to the first query. Thus, in this example, module 110, which manages a finite state machine, is further configured to identify the current state of the finite state machine, taking into account the extracted information included in the first query. For example, the presence of one or more pieces of information among the extracted data can be used. as a condition for transitioning from one state to another, i.e., from the previous state to the current state. Furthermore, module 120 can be connected, either directly or via module 140, to a CRM or any other database, both to initialize its knowledge base and to update the database. Thus, a means of communication exists between unstructured and structured data.

[0030] System 100 also includes a conversational content generation module 130. This module 130 is configured to generate a proposed response to the last message 101 sent by the user. This module 130 is also configured to receive a third request. The third request includes the elements necessary for module 130 to generate a proposed response to the last message 101. The third request includes information extracted by module 120. This information can be integrated directly into the response, for example, when the extracted information is the user's name, or indirectly, for example, to generate a contextualized response based on a characteristic of the user. The third request also includes information specific to the current state. In one example, the specific information could be related to a specific task to be performed within the current state.For example, in a finite state machine where different states are specific to a task, task-specific information, such as repairing or restarting a vehicle's engine, can be included in the third request. For instance, one state of the state machine could be dedicated to reading a barcode. The prompt for module 130 could be determined from this state, containing only the instructions for reading the barcode. Furthermore, data relevant to the task could be passed to module 130, such as RAG access to a knowledge base and reading information from module 120 or the file it generated. Part of the prompt could read: "If json.barcode is equal to null, read a barcode; otherwise, tell the user that you already know the barcode and they can continue."The third request may also include user-specific information, for example, their gender to address them appropriately by matching words, or indications sent by other modules such as module 150. The third request may also include information from calls to a RAG, programming interfaces, or any other dynamic information that may be. obtained on the fly, because they require real time, or depending on information obtained recently, for example from the last message 101, information obtained by other modules.

[0031] In an example consistent with the previous ones, module 130 can be implemented using generative artificial intelligence, for example, a GPT-3 neural network. It should be noted that resource-efficient artificial intelligence is indicated here, made possible by all the work done by the upstream modules, which enabled the construction of precisely the right prompt and the provision of precisely the right data, thus facilitating the execution of module 130's task.

[0032] In an example consistent with the previous ones, system 100 can also include additional 160 conversational content generation modules. Each of these additional 160 conversational content generation modules is configured to generate an additional response suggestion to the last message 101 starting with the third request. The 160 modules are also configured to receive a third request. Furthermore, these additional 160 conversational content generation modules can operate in parallel with the operation of module 130, so generating additional response suggestions does not require any extra time.When multiple additional response options are generated, response 102 to the last message 101 sent to the user can be based on a set of response options that includes the additional response options as well as the response generated by module 130. For example, response 102 could be a response option selected from the set of response options. In a second example, response 102 could be based on a response option selected from the set of response options, with the selected response option being modified before being sent as response 102. In a third example, response 102 could be based on at least two response options selected from the set of response options, or on a synthesis of the responses, or any other deterministic or non-deterministic combination.

[0033] In an example consistent with the previous examples, the additional 160 modules for generating conversational content have different characteristics from one another. For example, each 160 module has a level of Specific performance. In a first example, each module 160 is specialized in a specific domain. In a second example, compatible with the first, each module 160 has a specific resource consumption. It is also possible to send slightly different responses from module 130 to each module 160. An example could be that each prompt p1, p2, ..., pi of modules 160 m1, m2, ..., mi would contain data from a knowledge base derived from a RAG (with p1 the nearest 1 neighbors, ... pi the nearest i neighbors, for example). This would therefore give system 100 the ability to diverge to a greater or lesser extent from the user's message 101. Introducing such diversity allows for a diversity of responses, and thus increases the chances of obtaining a quality response 102.

[0034] In an example consistent with the previous examples, System 100 might include a Conversational Content Correction Module 150 configured to determine whether to modify or delete the response suggestion generated by Conversational Content Generation Module 130. Furthermore, when System 100 includes additional Conversational Content Generation Modules 160, the Conversational Content Correction Module 150 is also configured to determine whether to modify or delete the additional response suggestions generated by the Modules 160. Module 150 is configured to receive a fourth request. This fourth request contains the elements necessary for Module 150 to generate an order to modify or delete a response suggestion. The fourth request includes the response suggestion or the additional response suggestion, as well as the predefined set of rules.Optionally, the fourth request can include the dialogue history, the current identified state, and information specific to that current identified state. The fourth request can also include all the data that Module 150 might need to determine whether information in the candidate response is correct and / or suitable for the user. This might require, for example, calls to a RAG, to programming interfaces (e.g., to obtain real-time data or to verify the correctness of a calculation), or querying databases. Using the data in the fourth request, Module 150 can determine whether it is necessary to send a modification or even deletion order. The proposed answer, or an additional proposed answer, is used, for example, when a rule from the predefined rule set is not followed. For instance, module 150 can detect potentially manipulative, illegal, or inappropriate answers. It can also verify certain facts listed in the proposed answer. Finally, module 150 can learn from answers that the user has deemed invalid or inappropriate.

[0035] In an example consistent with the previous ones, module 150 can also be configured to receive the 101 message sent by the user and to correct it, by modifying (or rewording) it, or even deleting it entirely. Module 150 can therefore protect the other modules of system 100 from potentially dangerous 101 messages or messages sent as part of a cyberattack against system 100. Thus, a set of predefined rules can be used to determine whether the 101 message should be modified or even deleted in order to protect the other modules of system 100.

[0036] In an example consistent with the previous ones, module 150 can be implemented with generative artificial intelligence tasked with determining whether the answer accurately addresses the user's question. To make this determination, this generative AI could be augmented with RAG-type capabilities, particularly useful for fact-checking and thus for combating hallucinations, or even web search capabilities, as in the case of tools such as SearchGPT, Perplexity, or Gemini. Finally, the implementation of module 150 can include a machine learning phase, relying on a history of messages that have satisfied (or dissatisfied) users, to determine in advance whether an answer has a high probability of satisfying (or displeasing) the user.

[0037] System 100 also includes a control module 140. Module 140 is configured to receive messages 101 sent by the user and to respond with a reply 102 based on the proposed response generated by module 130 and optionally on additional proposed responses generated by modules 160. Furthermore, as illustrated in Figure 1, module 140 is configured to exchange data with all other modules of System 100. For example, it is configured to generate the various requests and send them to the different modules. It is also configured to obtain: the current state of the finite state machine sent by the finite state machine management module 110, the extracted information sent by the information extraction module 120, the proposed answer sent by the conversational content generation module 130, and the additional proposed answers sent by the additional conversational content generation modules 160, and the order to modify or delete the proposed answer sent by the conversational content correction module 150.

[0038] Module 140 is further configured to retrieve the predefined state machine. The state machine is, for example, stored in memory on system 100 and defines, in particular, all possible states and transitions, as well as the conditions for moving from one state to another. The term "retrieve" in this application can mean "receive," "access memory," "calculate," or even "generate."

[0039] When one of modules 1, 10, 120, 130, 150, or 160 is implemented using a neural network, the request sent to that module can correspond to a prompt specifically configured to be sent to it. Thus, module 140 can include a prompt optimization sub-module, notably to reduce the prompt size but also to add information specific to the module's implementation. With this prompt optimization sub-module, module 140 can learn from the behavior of other modules in order to optimize the prompt it sends them.

[0040] When the 100 system includes 160 modules, the 140 module can also be configured to: Obtain additional response suggestions to the last message 101 by sending the third request to the additional 160 conversational content generation modules, and Reply to the last message 101 sent by the user with a response 102 based on: the proposed response generated by the conversational content generation module 130, and the additional proposed responses generated by the additional conversational content generation modules.

[0041] When the system includes additional conversational content generation modules (modules 160) with different characteristics, the control module (module 140) is further configured to select at least one additional conversational content generation module to which to send the third request in order to obtain at least one additional response suggestion. The selection is based on the different characteristics of the modules. In one example, the selection could be based on the specific performance level of each module. For instance, when the current state is dedicated to a specific domain, the control module (module 140) could select a module that performs well in that specific domain. In another example, consistent with the previous one, depending on the resources available at a given time, the module (module 140) could select a module that is compatible with that level of available resources.For example, a naive implementation might consist of sending short questions to resource-efficient modules and long questions to more powerful and therefore less resource-efficient artificial intelligences.

[0042] When system 100 includes a conversational content correction module 150, module 140 is further configured to generate the fourth request and to obtain the order to modify or delete the proposed answer and / or additional answer suggestions. Moreover, once the order has been obtained by module 140, module 140 generates a fifth request. This fifth request may be identical to the third request that generated the proposed answer and / or additional answer suggestions to be modified or deleted. Alternatively, the fifth request may be different from the third request that generated the proposed answer and / or additional answer suggestions to be modified or deleted. For example, the fifth request may include the elements of the third request along with information about the rule that was violated.For example, the fifth query may specify that the previous answer proposal was eliminated because it was. offensive or age-inappropriate. The fifth request can therefore also include any information necessary to improve the next attempt at providing a response. This might include, for example, information about the models used in the previous call and / or the models that Module 140 recommends for the next attempt. For instance, the last attempt might have used less powerful AIs. Furthermore, the fifth request can also include information about configuration parameters of the AI ​​used, such as the model's temperature. Finally, the fifth request can include data extracted from RAGs, databases, files, or application programming interfaces.

[0043] In an example consistent with the previous ones, module 140 can also be configured to obtain feedback from the user. For example, the user can express their satisfaction or another feeling after receiving a response 102. Module 140 can then transmit this feedback to other modules by adding it to their requests.

[0044] In an example consistent with the previous ones, Module 140 can be implemented by one or more neural networks such as GPT3 or Llama. Optionally, Module 140 can also be based on a Retrieval-Augmented Generation (RAG) architecture. This allows the neural network(s) of Module 140 to use external data sources to enhance their capabilities, particularly in generating tailored queries and responding to the user.

[0045] In an example consistent with the previous ones, system 100 can include several modules 140. Each module 140 can be executed in parallel after receiving message 101. Thus, each module 140 can generate an initial request and send it to module 130. Furthermore, system 100 can also include several modules 130, with, for example, one module 130 corresponding to each module 140. In this example, each module 140 can send the initial request to its corresponding module 130. These architectures allow for a short response time while providing a wide variety of response options to generate the response 102. Finally, each "module 140-module 130" pair can also have a corresponding module 110 for managing a finite state machine. This architecture allows for more nuanced responses, meaning the user will be guided less predictably, which detracts from the realism of the chatbot. When all the responses from the modules 140 are known, or a sufficient number, a final processing step must choose the best response or combine the responses, which can be performed by a massive language model.

[0046] In an example, consistent with the previous examples, the system System 100 can include an additional module configured to perform calculations. For example, this additional module could be a programming interface for deterministic calculators, such as banking simulators. The other modules of System 100 can then delegate calculations to reliable deterministic simulators by providing the additional module with the input variables. This approach allows, in particular, the transfer of the complexity of certain calculations to the additional module, which reduces the overall power consumption of System 100 and can also enable, in a distributed architecture, the use of generative artificial intelligence running on the client system.

[0047] A second aspect of the invention relates to a method for operating the chatbot system 100. Figure 2 is a block diagram illustrating the steps of an example of the method 200 for operating the chatbot system 100 according to the invention. The mandatory steps of the example of method 200 are indicated by a solid rectangle, and the optional steps are indicated by a dashed rectangle.

[0048] Process 200 is iterative. Thus, an iteration as described below can be executed each time the user sends a message 101 to system 100.

[0049] Process 200 may include an optional step 205 of receiving, by the conversational content correction module 150, the last message 101 sent by the user during the dialogue between the chatbot system and the user is secure. For example, system 100 may ensure that the message 101 has an allowed format, an allowed size, whether it comes from an authorized user, or decrypting message 101 when a cipher system has previously encrypted message 101.

[0050] Process 200 may include an optional step 210 of modifying or deleting the last message 101. This step is performed by the conversational content correction module 150 when the last message 101 violates a rule from a set of predefined rules, for example, to ensure the integrity of the chatbot system 100. For instance, modifying the last message 101 could involve translating it into another predetermined or randomly chosen language. This modification significantly complicates certain insertion and / or prompt-stealing cyberattacks.

[0051] Process 200 includes a step 215 for receiving the last message 101 sent by the user during the dialogue between the chatbot system and the user. Step 215 is implemented by the control module 140. When steps 205 and 210 are implemented, message 101 is received by module 140 only if module 15 has not deleted it. Furthermore, message 101 can be transmitted by module 150, particularly if it has been modified.

[0052] Process 200 includes a step 220 of generating the first query using the control module 140. The first query can be generated using the elements mentioned previously.

[0053] Process 200 includes a step 225 of sending, by the control module 140, the first request to the finite state machine management module 110.

[0054] Process 200 includes a step 230 for identifying the current state of the finite state machine. Step 230 is implemented by the finite state machine management module 110 using data from the first received request.

[0055] Process 200 includes a step 235 in which the finite state machine management module 110 sends the current state of the finite state machine to the control module 140. Note that, in addition to returning the current state, an example implementation could involve returning associated information, such as prompts or information necessary for processing that state.

[0056] Process 200 includes a step 240 of generating the second query using the control module 140. The second query can be generated using the elements mentioned previously.

[0057] Process 200 includes a step 245 for extracting information from the messages sent by the user during the dialogue. Step 245 is implemented by module 120 for extracting finite information using data from the second query.

[0058] Process 200 includes a step 250 where the information extraction module 120 sends the extracted information to the control module 140. Note that it is possible to reverse the order of the steps, by calling module 120 before module 110. This reversal can be preferred for the entire automation, or based on the previous step in the conversation, or even other variables. In short, the order of steps between 110 and 120 can be chosen dynamically.

[0059] Process 200 includes a step 255 of generating the third query using the control module 140. The third query can be generated using the elements mentioned previously.

[0060] Process 200 includes a step 260 of sending, by the control module 140, the third request to the conversational content generation module 130.

[0061] Process 200 can also include an optional step 265 of sending, by the control module 140, the third request to the additional conversational content generation modules 160.

[0062] Process 200 includes a step 270 of generating the proposed response to the last message 101. Step 270 is implemented by the module 130 of generating conversational content with the elements of the third request.

[0063] Process 200 includes a step 275 of sending the proposed response to the last message 101. The sending is carried out by the conversational content generation module 130 to the control module 140.

[0064] Process 200 may include an optional step 280 of generating additional response proposals to the last message 101. Step 280 is implemented by the additional modules 160 of conversational content generation with the elements of the third query. Tl

[0065] Process 200 may include an optional step 285 of sending additional response proposals to the last message 101. The sending is carried out by the additional 160 conversational content generation modules to the control module 140.

[0066] Process 200 includes a step 290 for generating the response to the last message 101 sent by the user. Step 290 is implemented by the control module 140. The response is based on the proposed response generated by the conversational content generation module 130 and, optionally, on additional proposed responses generated by the additional conversational content generation modules 160.

[0067] The process 200 includes a step 295 of sending the response 102 by the control module 140.

[0068] When the user receives response 102, they can, for example, begin their task or modify its execution. For instance, response 102 might specify the next step to take in a complex task, such as repairing a vehicle engine.

[0069] A third aspect of the invention concerns the stacking of layers of several systems 100. Indeed, any generative artificial intelligence can be replaced by a system 100 (which would then be considered a high-quality generative artificial intelligence). It is therefore possible to build systems that combine several systems 100, for example, by implementing system 130 with, instead of a simple massive language model, a system 100. This ability to recursively use systems 100 could be called a network of generative artificial intelligences.

[0070] The modular architecture of System 100 is particularly advantageous for implementation in modern distributed software architectures, such as the "Idle-Live" paradigm. The "Idle-Live" paradigm aims to solve the fundamental technical problem of the trade-off between response latency, to ensure the highest possible response speed, and computational complexity, to ensure, in particular, the relevance and reliability of the responses. To achieve this, two types of agents are used in cooperation: A real-time agent, commonly called a "live" agent, optimized to ensure low latency, which manages real-time interaction with the user, and A background agent, commonly called "idle," which operates in the background and has greater computational resources to perform in-depth analyses, prepare data, and anticipate future interactions.

[0071] The 100 system, thanks in particular to its modularity, ensures not only effective collaboration between these two agents, but also a dynamic optimization of their respective behaviors, leading to measurable technical gains in terms of reliability, speed and resource consumption.

[0072] In this example, the real-time agent is configured for speed, which may involve using less in-depth and therefore potentially less reliable analysis models. The background agent, on the other hand, has the necessary time for more thorough analysis. Each agent can include an information extraction module (120), an information extraction module (130), a conversational content generation module (130), a control module (140), and optionally, a conversational content correction module (150). Each module of each agent can therefore be used by a module of the system (100). For example, the system's module (120) can use the real-time agent's module (120) and / or the background agent's module (120).

[0073] In one example, the real-time agent's information extraction module 120, used by default as module 120 of system 100, might fail to extract a relevant variable-value pair from the user's message, leading to an imperfect or incomplete response 102. The background agent, by asynchronously analyzing the entire dialogue history, can detect this omission. The background agent can then identify the missing information and prepare a correction or additional information. This additional information can then be stored in shared memory, for example, in the JSON file, via module 120 operating in "write" mode. Thus, in this example, system 100 is able to self-correct. During the next dialogue turn, the real-time agent, by reading from shared memory via module 120 in "read" mode, will immediately have this correction available. The conversational content generation module 130 will then be able to formulate a response that corrects or complements the previous one, without requiring a new cycle of complex analysis. This results in a direct technical gain in terms of reliability and quality of interaction, while reducing latency for the real-time agent, which does not have to perform the calculation to identify the error itself.

[0074] System 100 also enables resource optimization through dynamic behavior selection. Indeed, the system can optimize the allocation of computing resources by dynamically adapting the behavior of the various modules. For example, this optimization is particularly useful when the real-time agent receives a message 101 and must, before any processing, apply security measures to protect itself against risks such as malicious prompt injections. Executing all possible security rules, for example via the conversational content correction module 150, can be very resource-intensive. Therefore, with System 100, an optimized selection of these rules can be performed, for example, using the real-time agent's control module 140, which can decide which rules to apply based on extracted information, such as "variable v - value V" pairs.This information can be extracted by: Module 120 of the real-time agent that analyzes the incoming message 101, or Information prepared by the background agent and read from shared memory.

[0075] When the background agent has previously analyzed user behavior and stored a "variable v - value V" pair >> {'security_risk': 'high'}' in shared memory, the real-time agent's control module 140 can instantly decide to activate a stricter and computationally more intensive set of rules in module 150. Conversely, when the context is deemed safe, only light and quick checks can be performed. This dynamic selection of module behavior, conditioned by the extracted information, allows for a significant reduction in latency and resource consumption (computing power and energy), because the most expensive operations are only triggered when the context requires it.

[0076] These examples illustrate how the modularity of the System 100 architecture, state management via Module 110, and fine-grained information management via Module 120 enable the deployment of advanced optimization strategies. The invention thus provides the technical means to find dynamic optima between often conflicting constraints, such as speed, reliability, security, and energy consumption. This is particularly advantageous in complex architectures, such as an idle-live architecture, and represents an improvement over the monolithic systems of the prior art.

Claims

1. DEMANDS

1. A conversational agent system (100), comprising a processor coupled to memory and a graphical user interface (GUI), configured to converse with a user comprising: - A module (1 10) for managing a finite state machine configured to identify a current state of the finite state machine from a first request, the current state corresponding to the state of the machine following the receipt of a last message (101) sent by the user during the dialogue between the chatbot system and the user, and the first request comprising: o the finite state machine describing a dialogue logic, o a previous state of the finite state machine, the previous state corresponding to the current state of the machine before the receipt of the last message (101) sent by the user during the dialogue, o a number of exchanges carried out since a transition to the previous state, and o a dialogue history including the entire dialogue including the last message (101) sent by the user, - A module (120) for extracting information configured to extract information specific to the previous state in messages sent by the user during the dialogue from a second request, the second request including the history of the dialogue and the previous state. - A conversational content generation module (130) configured to generate a proposed response to the last message (101) sent by the user from a third request, the third request comprising: o Information extracted by the information extraction module (120), o Information specific to the current state identified by the finite state machine management module (110), - A control module (140) configured to: o Receive the messages (101) sent by the user during the dialogue, o Generate the first, second and third requests, o Obtain the current state of the finite state machine by sending the first request to the finite state machine management module (110), o Obtain the extracted information by sending the second request to the information extraction module (120), o Obtain the proposed response to the last message (101) by sending the third request to the conversational content generation module (130), and o Respond to the last message (101) sent by the user with a response (102) based on the proposed response generated by the conversational content generation module (130).

2. A chatbot system (100) according to claim 1 further comprising a conversational content correction module (150) configured to determine whether it is necessary to modify or delete the response proposal generated by the conversational content generation module (130) from a fourth request, the modification or deletion of the response proposal generated by the conversational content generation module (130) being necessary when the generated response proposal does not comply with a rule from a set of predefined rules, the fourth request comprising: - the proposed response generated by the conversational content generation module (130), - the set of predefined rules, in which the control module (140) is further configured to: Generate the fourth query, Obtain the order to modify or delete the response proposal generated by the conversational content generation module (130), and - Once the order has been obtained: o Generate a fifth query including: • The information extracted by the information extraction module (120), • Information specific to the current state identified by the module (1 10) for managing a finite state machine, and • Information regarding the rule that was not followed.

3. A chatbot system (100) according to claim 1 or 2 further comprising additional conversational content generation modules (160), each of the additional conversational content generation modules (160) being configured to generate an additional response suggestion to the last message (101) from the third request, and wherein the control module (140) is further configured to: - Obtain additional response suggestions to the last message (101) by sending the third request to the additional conversational content generation modules (160), and - Reply to the last message (101) sent by the user with a reply (102) based on: o the reply proposal generated by the conversational content generation module (130), and o additional reply proposals generated by additional conversational content generation modules.

4. A chatbot system (100) according to any one of the preceding claims, wherein: - the additional (160) conversational content generation modules have a specific performance level, the performance being linked to specialization in a specific field and / or to specific resource consumption, - the control module (140) is further configured to select at least one additional conversational content generation module (160) to which to send the third request to obtain at least one additional response proposal, the selection being based on the specific performance level of at least one additional conversational content generation module (160). [Claims] A chatbot system (100) according to any one of the preceding claims, wherein: - the second request also includes a JSON file, and - the information extraction module (120) is further configured to add the extracted information to the JSON type file.

6. A chatbot system (100) according to any one of the preceding claims, wherein: - the first query also includes the information extracted by the information extraction module (120), and - the module (1 10) for managing a finite state machine is further configured to identify the current state of the finite state machine taking into account the extracted information included in the first query.

7. A conversational agent system (100) according to the preceding claim, wherein the extracted information included in the first request is used by the module (110) for managing a finite state machine as a condition for passing from the previous state to the current state.

8. A method (200) for operating a chatbot system according to any one of the preceding claims, the method comprising, for each iteration of a set of iterations, the steps of: Reception (215), by the control module (140), of the last message (101) sent by the user during the dialogue between the conversational agent system and the user, - Generation (220), by the control module (140), of the first query, - Sending (225), by the control module (140), of the first request to the finite state machine management module (110), - Identification (230), by the finite state machine management module (110), of the current state of the finite state machine, - Sending (235), by the finite state machine management module (110), of the current state of the finite state machine to the control module (140), - Generation (240), by the control module (140), of the second request to the information extraction module (120), - Extraction (245) of information, by the information extraction module (120), from the messages sent by the user during the dialogue, - Sending (250), by the information extraction module (120), of the extracted information to the control module (140), - Generation (255), by the control module (140), of a third query, - Sending (260), by the control module (140), of the third request to the conversational content generation module (130), - Generation (270), by the conversational content generation module (130), of the proposed response to the last message (101) sent by the user, - Sending (275), by the conversational content generation module (130), of the proposed response to the control module (140), and - Generation (290), by the control module (140), of the response to the last message (101) sent by the user, the response being based on the proposed response generated by the conversational content generation module (130), and - Sending (295), by the control module (140), of the response (102) to the last message (101) sent by the user.

9. A method (200) of operation according to the preceding claim, further comprising initial steps: - Reception (205), by the conversational content correction module (150), of the last message (101) sent by the user during the dialogue between the conversational agent system and the user is secure, - When the last message (101) does not comply with the rule of the predefined rule set, modification or deletion (210) of the last message (101) by the conversational content correction module (150).

10. Product computer program comprising instructions which, when the program is executed by the system according to any one of claims 1 to 7, cause the system to carry out a process according to claim 8 or 9.

11. A non-transient, computer-readable data carrier on which a computer program according to the preceding claim is recorded.