Importing proxy personalization data to possess non-player characters within game

Generating personalized agents through machine learning models solves the problem that AI systems are difficult to cultivate in game development, realizes a consistent user interaction experience in different games, and reduces development complexity and cost.

CN119300897APending Publication Date: 2025-01-10MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380042497.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-06-30
Filing Date
2023-04-19
Publication Date
2025-01-10

AI Technical Summary

Technical Problem

Game development studios have difficulty nurturing advanced AI systems because these systems require a lot of custom field expertise and existing technologies are difficult to effectively integrate AI advancements in games.

Method used

Using machine learning model training to generate personalized agents, learn with users and adapt to their preferences, provide customized game styles and strategies, and store generated proxy data for use in different games, using API to import personalized proxy data. The game uses custom non-player characters (NPCs) to keep them consistent across games.

Benefits of technology

A constant gaming partner that interacts with users in different games is realized, simplifies the integration of AI in games, improves user experience, and reduces development costs and complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119300897A_ABST
    Figure CN119300897A_ABST
Patent Text Reader

Abstract

Aspects of the present disclosure relate to personalized proxy services that generate and evolve customized agents that can be instantiated in a game for play with a user. A machine learning model is trained to control interaction of an agent with a game environment and a user during play of a game. When the user continues to play with the agent, one or more machine learning models develop game styles for the agent that complement game styles of user preferences, incorporate policies of user preferences, and are typically customized for interaction with the user. Proxy personalization data generated during play of the game is stored by the service. The application programming interface is provided by a personalized proxy service. Using the API, the game may import proxy personalization data to customize in-game non-player characters (NPCs) to customize the in-game NPCs according to user preferences.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] The gaming industry makes up a large portion of the technology sector. As technology looks towards an increasingly connected future, gaming will be a central component of that connected future. Artificial intelligence has generally been a major component of the gaming industry, however, as AI development continues to advance, it has become more difficult for the gaming industry to incorporate these advancements into gaming. For example, it has been difficult for game development studios to foster AI because most advanced AI systems require a significant amount of custom domain expertise.

[0002] It is with respect to these and other general considerations that the aspects disclosed herein have been made.In addition, although relatively specific problems may be discussed, it should be understood that the examples should not be limited to solving specific problems identified in the background or elsewhere in this disclosure. Summary of the invention

[0003] Aspects of the present disclosure relate to a personalized agent service that generates and evolves customized agents that can be instantiated in a game to play with a user. Machine learning models are trained to control the agent's interaction with the game environment and the user during game play. As the user continues to play with the agent, one or more machine learning models develop a game play style for the agent that complements the user's preferred game style, incorporates the user's preferred strategies, and is generally customized for interacting with the user. Agent personalization data generated during game play is stored by the service, allowing users to import agents in different games, thereby creating a constant gaming partner that the user can play with across a variety of different games without requiring the different games to include technology capable of developing AI-controlled agents.

[0004] In other aspects, an application programming interface is provided by a personalized agent service. Using the API, a game can import agent personalization data to customize an in-game non-player character (NPC), thereby customizing the in-game NPC according to user preferences. The imported agent personalization data can be modified to conform to game or NPC constraints, thereby allowing the NPC to be customized in a way that does not disrupt the role of the NPC in the game or game story.

[0005] This summary is provided to introduce a selection of concepts in simplified form, which will be further described in the following detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Additional aspects, features, and / or advantages of the examples will be set forth in part in the following description, and in part will be apparent from the description, or may be learned by practicing the disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0006] Non-limiting and non-exhaustive examples are described with reference to the following figures.

[0007] Figure 1A An overview of an example system for generating and using a user-personalized agent in a gaming system is shown.

[0008] Figure 1B An overview of an example system for generating and utilizing personalized agent responses in a gaming system is shown.

[0009] Figure 2 An example of a method for generating a personalized agent is shown.

[0010] Figure 3 An exemplary system for importing agent personalization data to affect the control of an in-game NPC is depicted.

[0011] Figure 4 Depicted is an example of a method for generating a customized tutorial based on player history.

[0012] Figure 5 An exemplary method for providing agent personalization data to a requester is described.

[0013] Figure 6 An exemplary method for importing agent personalization data to possess an in-game NPC is depicted.

[0014] Figure 7 is a block diagram illustrating example physical components of a computing device with which aspects of the present disclosure may be practiced.

[0015] Fig. 8A is a simplified diagram of a mobile computing device in which aspects of the present disclosure may be practiced.

[0016] Figure 8B is another simplified block diagram of a mobile computing device with which aspects of the present disclosure may be practiced. DETAILED DESCRIPTION

[0017] Various aspects of the present disclosure are described more fully below with reference to the accompanying drawings, which begin with a portion thereof and illustrate specific example aspects. However, different aspects of the present disclosure can be implemented in many different ways and should not be construed as limited to the aspects set forth herein; on the contrary, these aspects are provided to make the present disclosure thorough and complete, and will fully convey the scope of these aspects to those skilled in the art. Practical aspects can be methods, systems, or devices. Therefore, various aspects can take the form of hardware implementations, full software implementations, or implementations combining software and hardware aspects. Therefore, the following detailed description should not be understood as limiting.

[0018] Aspects of the present disclosure provide systems and methods for using machine learning techniques to provide personalized agents or robots that can be used in games or other types of environments. In other examples, aspects disclosed herein relate to: using a reinforcement learning agent that can be trained via computer vision without relying on a deep hook into the game; using a training agent of a model (e.g., a base model, a language model, a computer vision model, a speech model, a video model, an audio model, a multimodal machine learning model, etc.) so that the agent is operable to understand written and spoken text, has a defined knowledge ontology, and can write its own code; providing an agent that interprets state information using computer vision and audio prompts, providing an agent that receives user instructions based on computer vision and audio prompts, and providing a system in which user feedback is used to improve future interactions with agents across different games and applications.

[0019] In an example, a generative multimodal machine learning model processes user input and generates a multimodal output. For example, a conversational agent according to aspects described herein may receive user input such that the generative multimodal machine learning model may be used to process the user input to generate a multimodal output. The multimodal output may include natural language output and / or programmatic output, among other examples. The multimodal output may be processed and used to affect the state of an associated application. For example, at least a portion of the multimodal output may be executed or may be used to call an application programming interface (API) of an application. In some examples, a generative multimodal machine learning model (also generally referred to herein as a multimodal machine learning model) used according to aspects described herein may be a generative transformer model. In some instances, explicit and / or implicit feedback may be processed to improve the performance of the multimodal machine learning model.

[0020] In an example, user input and / or model output is multimodal, as used herein, which may include one or more types of content. Example content includes, but is not limited to, spoken or written language (which may also be referred to herein as "natural language output"), code (which may also be referred to herein as "programmed output"), images, video, audio, gestures, visual features, intonation, contour features, posture, style, font, and / or transitions, among other examples. Thus, in contrast to machine learning models that process natural language input and generate natural language output, aspects of the present disclosure may process input and generate output having any of a variety of content types.

[0021] In doing so, the systems and methods disclosed herein support a personalized agent that learns who the user (also interchangeably referred to herein as a "player") is, how the user speaks, what the user's strategy is, and how the user plays. It retains a "memory" of past interactions with the user and can act as a constant companion to the user as the user participates in different experiences (such as playing different games, playing different game modes, etc.). To do so, aspects disclosed herein are operable to store meta-classifications (e.g., sentiment analysis, intent analysis, etc.) associated with personal data about the user, provided the user has given permission to do so.

[0022] On the other hand, a system is provided in which an application programming interface (API) can be used to access a personalized agent. Such an API allows a game studio to create a non-player character (NPC) partner, which is designed to be optionally "owned" by the player's personalized agent. As used herein, an NPC "owned" by a player's personalized agent means that the NPC assumes the characteristics of a personalized agent. These features may include: how the agent communicates with the player (e.g., preferred communication style, how the agent refers to the player), how the agent interacts with the player (e.g., the agent adopts a game style that matches the player's preferred strategy based on the player's past experience in the game), the personality characteristics of the agent, the agent's play style characteristics, etc. The game can provide personalized agent-specific permissions for accessing game state, knowledge ontology, and other game information via a game API. The game can also limit the personalized agent to perform specific tasks or lower the "intensity" of the agent based on the game design.

[0023] Fig. 1 shows an overview of an example system 100 for generating and using a user personalized agent in a game system. As shown in Figure 1, a user device 102 interacts with a cloud service 104 of a managed game service 106 (or other types of applications) and an instantiation of an agent 108 that can interact with a game. The game device can be a console game system, a mobile device, a smart phone, a personal computer, or any other type of device that can execute a game locally or access a managed game on a server. In one example, the game associated with the game service 106 can be directly hosted by the cloud service 104. In an alternative example, the user device can be locally hosted and execute a game, in which case the game service 106 can serve as an interface for promoting the communication between one or more instantiated agents 108 and the game. A personalized agent library 107 can store and execute components for one or more agents associated with a user of the user device 102. The components of the personalized agent library 107 can be used to control (multiple) instantiation agents 108.

[0024] In the example, one or more agents from personalized agent library 107 interact with the game via (multiple) instantiated agents 108 based on the text communication, voice command and / or player action received from user device 102. That is, system 100 supports interaction with agents, as if they were other human players, or alternatively, because players will usually interact with traditional in-game NPCs. In this way, one or more agents managed by agent library 108 are operable to interact with different games played by users without changing the game. In other words, system 100 is operable to work with games, and does not need to develop games specifically to support agents (for example, agents do not need API access, and games do not need to be developed with specific codes to interact with agents, etc.). In this way, system 100 provides scalable solutions, which allow users to play with customized agents in various games. In other words, audio and visual interaction and / or the API shown are used to transmit game state between one or more instantiated agents 108a games via game services 106. In doing so, (multiple) instantiated agents 108 can interact with the game in the same way as a user (e.g., by interpreting video, audio, and / or tactile feedback from the game) and / or in the same way as an NPC in the game (e.g., via an exposed API). Similarly, one or more agents can interact with a user who uses a gaming device 102 as another player to play the game, or in a manner similar to an NPC interacting with a user. That is, one or more agents can receive visual, text, or voice input from a user playing the game via a gaming service 106 and / or receive gaming information (e.g., current game state, NPC inventory, NPC capabilities, etc.) via an exposed API. In this way, the system 100 allows a user playing the game via a user device 102 to interact with one or more agents, just as they would interact with any other player on an NPC, however, (multiple) instantiated agents 108 can be personalized for the user based on past interactions with the user that occurred in the current game and other games. To facilitate this type of user interaction, one or more instantiated agents 108 may employ computer vision, speech recognition, or other known techniques when processing interactions with a user in order to interpret commands received from the user and / or generate responsive actions based on user actions.

[0025] For example, consider that a user plays a first-person shooter using a personalized agent. The user can say "cover the right side". The speech recognition model, which can be a model in the model 118, can be used to interpret the audio received from the user as a modality understood by the agent. In response, the agent 108 can take a position on the right side of the user or otherwise perform an action to cover the right side of the user in response to the user's audio instructions. As another example, consider the action of playing a game in which two targets must be defended at the same time. The agent playing with the user can use computer vision to analyze the current view of the game to determine that there are two targets (e.g., identifying two targets on a map, explaining the displayed exploration log indicating that two targets must be defended, etc.). Similarly, computer vision can be used to identify the user's player character and determine that the player character goes to the first target. Based on feedback from the computer vision model, the agent can instruct its representative character to move toward the second target and defend the second target.

[0026] According to these examples, those skilled in the art will understand that, by adopting speech recognition, computer vision technology, etc., one or more agents from the agent library will be able to interact with the user in a manner similar to how other users interact during the collaborative game. In doing so, one or more agents from the agent library can be generated separately from a specific game, because (multiple) instantiated agents 108 may not have to have API or programming access to the game in order to interact with the user. Alternatively, (multiple) instantiated agents 108 can have API access or programming access to the game, such as when the instantiated agent "owns" and the NPC in the game. In these scenarios, the agent can interact with the game state and the user based on access via API. Because the system 100 provides a solution in which the agent can be implemented separately from each game, one or more agents in the agent library can be personalized to interact with a specific user. This personalization can be performed across different games. That is, over time, the agent learns details about the user, such as the user's likes and dislikes, the user's game style, the user's communication mode, the user's preferred strategy, etc., and can adapt to the user accordingly across different games.

[0027] Agent personalization can be generated and updated over time via feedback collection engine 110. Feedback collection engine 110 receives feedback from users and / or (multiple) instantiated agents 108 executed in the game. The collected feedback can include information related to the user's game style, user communication, user interaction with the game, user interaction with other players, user interaction with other agents, (multiple) instantiated agents 108 in the game, the interaction between the player and (multiple) instantiated agent 108 actions in the game, or any type of information generated by the user device 102 when the user plays the game. In order to comply with user privacy considerations, information can only be collected by the feedback collection engine 110 when receiving permission to do so from the user. Users can choose to join or exit these collections at any time. The collected data can be implicit data (e.g., data based on the normal interaction of the user with the game) or explicit data (such as specific commands provided to the system by the user). An example of a specific command can be that the user instructs the agent to address the user by a specific character name. The data collected by the feedback collection engine 110 can be provided to the prompt generator 112.

[0028] The prompt generator 112 can use the data collected by the feedback collection engine 110 to generate prompts for one or more agents of the personalized agent library 108. That is, the prompt generator 112 interprets the collected feedback data to generate instructions that can be executed by one or more agents to perform actions by the agent. The prompt generator is operable to generate new prompts or instructions based on the collected feedback, or to change existing prompts based on the newly collected feedback. For example, if the user initially plays the game as a frontline attacker, the prompt generator 112 can generate instructions that enable (multiple) instantiated agents 108 to implement supporting game styles, such as long-range attackers or support roles. If the user switches the game style to one of the long-range damage inflicters, the prompt generator 112 can identify the change via the feedback data and adjust (multiple) instantiated agents to adjust to the player's new style (e.g., switch to a frontline attacker to attract hatred or approach from the player character). The instructions generated by the prompt generator are provided to the cloud service 104 to be stored by the cloud service 104 as part of the agent library 108, thereby storing meta-classifications associated with a specific user (e.g., sentiment analysis, intent analysis, etc.). In doing so, instructions generated based on the user's play style or preferences in the first game can be incorporated by the agent not only in the first game, but also in other games played by the user. That is, using the instructions generated by the prompt generator 112, the cloud service 104 can instantiate agents across a variety of different games that have been personalized for a particular user based on the user's previous interactions with the (multiple) instantiated agents 108, regardless of whether the user is playing the same game or a different game. Although aspects described herein describe a separate prompt generator 112 as generating commands to control the (multiple) instantiated agents 108, in alternative aspects, the commands can be generated directly by one or more machine learning models employed by the agent library 107, or generated via a combination of various different components disclosed herein.

[0029] However, in some scenarios, problems may be encountered during the training process for various machine learning models that can be utilized to generate personalized agents. For example, there may be a failed training session due to data or processing errors. In another example, the training process may fail due to user error. For example, a user who picks up a new game may first play the game incorrectly. The user's incorrect actions or experiences may train the personalized agent to play the game in a way that negatively affects the way the game is played. In this way, the system 100 may include a process for rolling back or resetting one or more machine learning models (or any of the other components disclosed herein) to correct errors that may occur when training one or more machine learning models or any other errors that may generally occur when developing personalized agents. For example, the system 100 may periodically maintain snapshots of different machine learning models (or other components) that save the state of the components at the time of the snapshot. This allows the system 100 to roll back all components, a subset of components, or a specific component in response to detecting a training error in the future. Multiple different snapshots can be stored, representing the state of the personalized agent as it develops over time, thereby providing the system 100 (or the user) with options to determine the appropriate state for rollback when an error is encountered.

[0030] The personalized agent library 107 may also include a fine-tuning engine 114 and one or more models 116. The fine-tuning engine 114 and the model 116 are operable to interact with user actions via the user device 102, (multiple) instantiated agents 108, and (multiple) game training models 124 to process feedback data received from various sources. Any number of different models may be used alone or in combination for use with the examples disclosed herein. For example, the system 100 may use a base model, a language model, a computer vision model, a speech model, a video model, and / or an audio model. As used herein, a base model is a model trained on a wide range of data that may be applicable to a wide variety of tasks (e.g., a model capable of handling a variety of different tasks or modalities).

[0031] One or more models 116 can process video, audio and / or text data received from a user or generated by a game during the game, so as to interpret user commands and / or derive user intent based on user communications or in-game actions. Outputs from one or more models 116 are provided to a fine-tuning model 114, which can use the output to modify the prompts generated by the prompt generator 112, so as to further personalize the instructions generated for the user based on the agent's past interactions with the user. The personalized agent library 107 can also include a game data (background story (lore)) 122 component, which is operable to store information about various different games. The game data (background story) 122 component stores information about the game, the background story of the game, story elements, available abilities and / or items, etc., and the agent can be used by other components (e.g., models 118, fine-tuning engine 114, prompt generator 112, etc.) to generate instructions to control (multiple) instantiated agents 108 according to the theme, story, requirements, etc. of the game.

[0032] The various components described herein can be utilized to interpret the current game state based on data received from the game (e.g., visual data, audio data, tactile feedback data, data displayed by the game through an API, etc.). In addition, the components disclosed herein are operable to generate instructions based on the current game state to control the actions of a personalized agent in the game. For example, the components disclosed herein are operable to generate instructions to control the interaction of the personalized agent with the game in a manner similar to how a human would interact with the game (e.g., by providing specific controller instructions, keyboard instructions, or any other type of interface that the supported game controls). Alternatively or additionally, the various components can generate code that controls how the personalized agent interacts in the game. For example, the code can be executed by the personalized agent, which causes the personalized agent to perform specific actions within the game.

[0033] The personalized agent library 107 may also include an agent memory component 120. The agent memory component may be used to store personalized data generated by various other components described herein as well as game styles, techniques, and interactions learned by the agent via past interactions with the user. The agent memory 120 may provide additional input to the prompt generator 112, which may be used to determine (multiple) instantiated agent actions during game play.

[0034] To this end, the components of the described system 100 have focused on the creation of personalized agents, the continuous evolution of personalized agents via continuous interaction with users, and the instantiation of personalized agents in user's game sessions. Although the personalization of agents for specific users provides many game play benefits, instantiating agents also requires and understands how to interact with games and play games. In one aspect, the components of the personalized agent library 107 are operable to learn and refine the game play of agents based on sessions with users. However, when users play new games, the time required for agents to learn game play mechanisms to become useful partners may not be feasible when only users play games. To address this problem, the system 100 also includes a game play training service 124, which includes a game library 126 and a game play machine learning model 128. In various aspects, the game library includes any number of games supported by the cloud service 104 and / or the user device 102. The game play training service 124 is operable to execute sessions of various games stored in the game library 126, and instantiate agents within the executed games. The game play machine learning model 128 is operable to receive data from the executed game and the agent actions performed in the game as input, and in response, generate control signals to guide the game play of the agent within the game. By using reinforcement learning, the game play machine learning model is operable to develop an understanding of the game play mechanics of both the specific game and genre of the game. In doing so, the game play training service 124 provides a mechanism in which an agent can be trained to play a specific game or a specific type of game without user interaction. The personalized agent library 107 is operable to receive (or interact with) trained models from the game play training service 124, which can be stored as part of the agent memory, and adopt those models with other personalized components to control (multiple) instantiated agents 108. In doing so, the user experience of interacting with the agent in the game is greatly enhanced because the user will not need to invest time to train the agent in the specific mechanics of the game. Additionally, by importing or interacting with a trained game play machine learning model 128 provided by the game play training service 124, the personalized agent library 107 is able to employ the trained (multiple) instantiated agents 108 to play with the user when the user first launches a new game.

[0035] Those skilled in the art will appreciate that the system 100 provides a personalized agent or artificial intelligence operable to learn player identities, learn player communication styles or tendencies, learn strategies adopted and used by players in a variety of different games and scenarios, learn game play mechanics for specific games and game genres, etc. In addition, one or more agents generated by the system 100 may be stored as part of a cloud service, which allows the system to retain a "memory" of a user's past interactions, thereby allowing the system to generate an agent that acts as a consistent user partner across different games without the need to specifically design the game to support such an agent.

[0036] Figure 1B An overview of an example system 150 for generating and utilizing personalized agent responses in a gaming system is shown. As shown in the system 150, two players, player 1 152 and player 2 154, interact with one or more agents 156. Although two players are shown, those skilled in the art will appreciate that any number of players may participate in a gaming session using the system 150. An assistant service 158 is provided to assist in personalizing one or more agents 158 that interact with individual players or with multiple players simultaneously. Figure 1A As discussed in , one or more models 166 can be used to generate or modify prompts 168. The prompts 168 are provided to the assistant service 158, which applies multiple engines (e.g., agent character engine 160, user goal or intent engine 162, and game background story or constraint engine 164) to modify the prompts to provide more personalized interactions with individuals or groups of players.

[0037] For example, the agent character engine 160 can modify or adjust the prompt (or the action determined by the prompt) based on the personalized information associated with the agent. For example, the user can adopt an agent with a preferred personality. The agent character engine 160 can modify the prompt or response generated by the prompt based on the agent's personality. The user intent or goal engine can modify the prompt (or the action determined by the prompt) based on the user's current goal or the intention behind the user's action or request. The user's goal or intention can change over time, can be based on a specified user goal, or can be determined based on the user's action. The game background story or constraint engine 164 can modify or adjust the prompt (or the action determined by the prompt) based on the characteristics of the game. For example, the agent can "own" a non-player character in the game (as discussed in further detail below). The game background story or constraint engine 164 can modify the prompt based on the NPC personality or restrictions. When modifying or adjusting the prompt, various engines of the assistant service can be used individually or in combination. The adjusted prompt is then provided to one or more associated agents 156 for execution.

[0038] Figure 2An example of a method 200 for generating a personalized agent is shown. For example, the method 200 can be adopted by the system 100. The process begins at operation 202, where a game session is instantiated, or an indication of a game session being instantiated is received. As described above, the game session can be hosted by a system that executes the method 200, or can be hosted by a user device, such as on a game console. When the game is instantiated or an indication that a game session is established is received, the process continues to operation 204, where the agent is instantiated as part of the game session. In one example, the agent can be instantiated in response to receiving a request to add the agent to the game session. For example, a request to instantiate an agent in a multiplayer game or an agent that controls an NPC or AI partner in a single-player game can be received. Instantiating an agent can include identifying an agent from an agent library associated with a user playing the game. As described above, aspects of the present disclosure provide for generating an agent that can be played across different games. In this way, the agent instantiated in operation 204 can be instantiated using various components stored as part of a personalized agent library. For example, agents may be instantiated using personalized features learned over time through interaction with the game, game data or background stories saved about a particular game or genre, machine learning models trained to perform mechanics and actions specific to the game in which the agent will be instantiated, or machine learning models trained based on a genre of games similar to the game in which the agent will be instantiated, etc. As previously described, the selected agent may be personalized for the user playing the game based on past interactions with the user in the same game or a different game as the game launched at operation 202. Alternatively, rather than dynamically instantiating an agent using different components stored in an agent library, a specific agent may be selected at operation 204. That is, the agent library may contain specific "builds" for different types of agents designed by the user or derived through specific game methods with the user. These agents may be saved and instantiated by the user in future game sessions for the same game as they were originally created or in a different game. After the agent is instantiated at operation 204, the agent joins the game session with the user.

[0039] At operation 206, the current game state is interpreted by audio and visual data and / or by API access granted to the agent by the game. As previously mentioned, certain aspects of the present disclosure provide the generation of agents that can interact with the game without API or programmatic access to the game. In this way, the instantiated agent interacts with the game in the same way, that is, by audio and visual data associated with the game. Alternatively, for example, when the agent has an NPC, the agent can be granted API access to the game to interact with the game. At operation 206, various speech recognition, computer vision, object detection, OCR processing, etc. can be used to process the communication (e.g., verbal commands, text-based commands) and game state received from the player through the currently displayed view (e.g., using computer vision) or via API to interpret the game state. Then the current game state is used to generate agent actions at operation 208. For example, agent actions can be performed based on verbal commands received from the user. Alternatively, agent commands can be generated based on the current view. For example, if an enemy appears on the screen, computer vision and / or object detection may be used to identify the enemy, and a command for the agent to attack the enemy may be generated at operation 208. Although not shown, operations 206 and 208 may be performed continuously while a gaming session is active.

[0040] The process continues to operation 210, where user feedback is received. The received user feedback can be explicit. For example, a user can issue a specific command to the agent to perform an action or change the action they are currently performing. Alternatively or additionally, the user feedback can be implicit. Implicit user feedback can be feedback data generated based on the user's interaction with the game. For example, the user may not explicitly provide commands to the agent, instead, the user can adjust their actions or game style based on the current game state and / or in response to the actions performed by the agent. In an example, user feedback can be continuously collected during a game session. The collected feedback can be associated with a concurrent game state or agent action.

[0041] When collecting user feedback, the process continues to operation 212, where prompts are generated for one or more agents based on the user feedback. In an example, the generated prompt is an instruction to perform an agent action in response to the state of the game or a specific user interaction. Prompts can be generated using one or more machine learning models that receive user feedback and / or actions performed by one or more agents and / or existing prompts and / or state data. The output of the machine learning model can be used to generate one or more prompts. In an example, the machine learning model can be trained using information related to the user so that the output from the machine learning model is personalized for the user. Alternatively or additionally, the machine learning model can be trained for a specific game or application, for a specific user group (e.g., an e-sports team), etc. A plurality of machine learning models can be used to generate prompts at operation 212. In other examples, in addition to or in place of the use of a machine learning model at operation 212, other processes, such as rule-based processes, can be used. In addition, new prompts can be generated at operation 212, or existing prompts can be modified.

[0042] Once one or more prompts are generated at operation 212, flow continues to operation 214, where the one or more prompts are stored for future use by one or more agents. For example, the one or more prompts may be stored in an agent library. By storing the prompts generated at 212 with the agent library, the agent will be able to utilize the prompts to interact with the user across different games, thereby providing a personalized agent that the user can play across different games.

[0043] While aspects of the disclosure described thus far relate to importing personalized agents to play with a user, game developers can utilize agent data to control in-game non-player characters (NPCs). In doing so, NPCs can function according to a user's preferred play style, and techniques can be employed to help users with accessibility requirements, etc., while still maintaining the quality of the NPCs based on story requirements or NPC in-game abilities. For example, an agent system (such as the system described in FIG. 1 ) can provide an API that allows a game to access agent data to import a library of characteristics and associate the imported characteristics with one or more in-game NPCs. In this sense, an NPC can be "owned" by a player's personalized agent.

[0044] Figure 3 An exemplary system 300 for importing agent personalization data to affect the control of an NPC within a game is depicted. Figure 3As shown, personalized proxy service 302 communicates with game 304 (or game service) via network 303. In an example, network 303 can be a local area network, a wide area network, a cellular data network, the Internet, or any other type of network. In alternative aspects, personalized proxy service 302 and game 304 can be hosted by the same service (e.g., on the same cloud network). System 300 provides a mechanism that allows game developers to personalize NPCs for individual users without having to invest time and resources to develop personalized services for the game itself. For example, game 304 can request agent personalized data from personalized proxy service 302 via an API available through personalized proxy service 302 and game 304.

[0045] like Figure 3 As shown, the personalized agent service 302 may include a personalized agent API 306, a personalized selector 308, and a personalized agent data store 310. The game 304 may include a personalized request component 312, a game constraint analyzer 314, (multiple) NPC profiles 316, and a game API 318. When a game session is initiated, for example, when a user creates a new game, or when a user meets a new in-game NPC, the game 304 may provide the user with settings that allow the user to personalize one or more in-game NPCs based on one or more agents created by the user interacting with one or more agents in other games or previous game sessions. If the user selects the option to personalize the in-game NPC, a request for personalized data may be generated by the personalized request component and transmitted to the personalized agent service 302 via the network 303. In various aspects, the request generated by the personalized request component 312 may include details about the game, details about the NPC (such as the NPC's abilities, roles, relationships with player characters, etc.), and / or requests for specific personalized data (such as personality traits of the agent, the agent's play style, strategies commonly adopted by the agent, etc.).

[0046] The personalized agent API 306 is operable to receive requests from one or more games (such as game 304) or personalized agent data. In one aspect, the personalized agent API 306 is operable to receive a request for a specific agent. In this scenario, the personalized agent API 306 is operable to instantiate the requested agent as part of a game session. However, in other aspects, the request received from the game 304 may not be for an agent, but may be for personalized data of one or more agents stored by the personalized agent service 302. In this scenario, the game 304 may request personalized data to personalize the in-game NPC according to user preferences. For example, the game may include one or more NPC partners that accompany the player character as part of the game story. In this example, the game may not allow important player-created agents, however, the game will allow the in-game NPC to be personalized according to the user's preferences, game style, etc. Therefore, one or more in-game NPCs can be "owned" by one or more personalized user agents. That is, the in-game NPC can take certain characteristics of the personalized agent (e.g., how the agent interacts with the user, the agent game style, the agent role, etc.), while maintaining some characteristics of the in-game NPC (e.g., the story role of the NPC, the NPC ability, etc.).

[0047] When a request for agent characteristics is received, the personalized agent API 306 parses the request to determine the parameters of the request. For example, the request may be for a specific personalized characteristic (e.g., game style, communication behavior, personality traits, etc.). Alternatively or additionally, the request may include information about the game, NPC capabilities, game genres, etc. The request parameters may be provided to the personalized selector 308. The personalized selector 308 analyzes the request parameters and identifies the requested agent characteristics based on the request parameters. For example, the personalized selector may identify a request for a specific characteristic from the request parameters. In addition, the personalized selector 306 may infer characteristics based on the request parameters. For example, information about the game, such as the game type or game genre, may be used to identify agent characteristics related to the game or NPC. For example, if the game is a role-playing game, the personalized selector 306 may identify agent characteristics that are related to or useful for role-playing. Similarly, if the game is a first-person shooter, the personalized selector 306 may identify agent characteristics related to first-person shooter games. Similarly, the characteristics of the NPC that the agent will "own" can be used to infer relevant agent characteristics. For example, if the NPC is healthier, the personalization selector may identify agent characteristics that are associated with the healthier class. Upon identifying the relevant agent characteristics, agent data associated with the relevant agent characteristics is retrieved from the personalized agent data store 310. In an example, the personalized agent data store 306 may store any type of personalization information previously generated for the agent (e.g., tips, machine learning models, agent personality traits, etc.). The retrieved personalization information may be presented to the game 304 via the personalized agent API 306.

[0048] After receiving the personalized information, the game 304 uses the game constraint analyzer 314 to analyze the received personalized information. In some scenarios, applying the agent personalized information to the in-game NPC without modification may cause the game to interrupt the scene. For example, the unmodified application of the agent personalized information may cause the NPC to be overpowered or underpowered, and the personality of the NPC may be changed in a way that negatively affects the NPC role in the story, etc. In this way, the game constraint analyzer 314 analyzes the agent personalized information and modifies the agent personalized data according to the game and / or NPC constraints. The modified agent personalized data can then be stored in the NPC profile 316 for the owned NPC. The actions performed by the in-game NPC can then be guided by the modified agent personalized data stored in the NPC profile. In this way, the in-game NPC can be owned by the characteristics of the personalized agent, thereby customizing the user's interaction with the NPC during the game. The game 304 may also include a game API 318 that allows the owned API to interact with the user and the game. For example, the owned NPC actions can be generated based on the personalized machine learning model or other personalized data received from the personalized agent service. The game API 318 allows personalized machine learning models and / or personalized data to receive game state data, user interaction data, user actions, etc. executed in the game, and control the interaction of NPCs within the game.

[0049] Figure 4 An example of a method 400 for accessing and merging agent data for use by an in-game NPC is shown. The process begins at operation 402, where existing agent data associated with a user playing the game is accessed. In one example, the agent data may be accessed via an API displayed by the agent system. For example, the game may access personalized user data and / or personalized user agents stored in an agent library. In this example, access may be allowed only upon receiving user permission to do so. If the game receives user permission and a user identifier, the game may access personalized user data and / or personalized user agents via an API call including the user identifier.

[0050] When accessing and / or importing proxy data, the process continues to operation 404, where the accessed data is associated with one or more NPCs. For example, a game may include multiple NPCs that interact with a player character. These NPCs may be incorporated as part of a player character participant, for example, as a member of a player participant in a role-playing game. Typically, NPCs are developed to have specific personalities based on NPC roles, relationships with player characters, and / or story-driven characteristics. However, the NPC is developed in a general manner, that is, developed for a player base as a whole, rather than in a player-specific manner. This is based on the limitation that game developers cannot access individual users. However, aspects of the present disclosure do not lack access to user data. Therefore, game developers can utilize disclosed aspects to modify a general NPC by associating the accessed proxy data with a general NPC at operation 404 to personalize the general NPC to individual players.

[0051] As discussed, personalized agents are developed through user game styles and user interactions with one or more agents across multiple different games. Therefore, some agent actions may not be compatible with specific NPCs. These may be due to NPC restrictions, such as NPC available skill combinations or other considerations, such as story requirements. In this way, at operation 406, the imported agent data can be modified according to the NPC restrictions set by the game. For example, if the NPC is set to play a specific role (e.g., a healer, tank, or damage inflicter in a role-playing game), the imported agent data can be modified to remove actions or characteristics that are not suitable for NPC roles. Other considerations can be used to determine how to modify the imported data. For example, as discussed, agent data is personalized to the user. However, if the NPC is initially introduced to the player character as a stranger, it will be immersion-brake if the NPC incorporates user-specific knowledge. In this way, some personalized data from the imported agent can be removed or modified based on story requirements. In another example, the modifications made at operation 406 can change as the player progresses through the game. For example, as the NPC and the player character spend more time together, more personalized information from the agent can be incorporated into the NPC behavior. In doing so, a natural progression of the relationship between the NPC and the player character can be simulated. After any modifications are made, the process continues to operation 408, where the NPC is operated according to the modified agent characteristics. In this way, the generic NPC is modified to operate, for example, according to a game style that matches the user, thereby providing an improved player experience.

[0052] By allowing access to player history, games can be further customized to provide specific information to users when they start a new game. That is, rather than providing a generic tutorial common in many games today, a game with access to the player's history and skills can customize the tutorial for individual users based on their knowledge (e.g., omitting parts of the tutorial that the user is familiar with based on the user's history, focusing on information in the tutorial that is new to the user, etc.). That is, the tutorial can be customized based on user experience from other games, features that were previously unavailable to an individual game because, as described above, the individual game lacked access to the user's history and experience gained from other games.

[0053] Figure 5 An exemplary method 500 for providing agent personalization data to a requester is depicted. For example, the method 500 may be performed by a personalization agent service in response to a request from a game for personalization of an in-game NPC character. The process begins at operation 502, where a request for agent personalization data is received from a game. In one aspect, the request may be for a specific agent. In another example, the request may be for personalization data from one or more agents. The request may include parameters identifying desired characteristics or personalization information, parameters describing the game and / or NPC, and the like.

[0054] At operation 504, the request is analyzed to determine agent personalization characteristics associated with the request. For example, the request parameters may be parsed to identify specific agent characteristics requested by the game. Additionally or alternatively, game information or NPC information included in the request or associated with the game making the request may be analyzed to determine agent personalization characteristics associated with the game or NPC, as described above. When determining the requested personalization characteristics, relevant agent personalization data is identified. At operation 506, relevant agent personalization data is retrieved from the agent personalization data store. For example, data stored in the personalized agent library 107 may be retrieved at operation 506, including agent memory, prompts, machine learning models used by the agent to interact with the game and / or user, relevant game data or background stories, etc. In one example, a reference may be generated that allows the game to retrieve or communicate with the personalization component, for example, via an API exposed by the agent personalization service, instead of retrieving data at operation 506. At operation 508, the retrieved agent personalization data or a reference to the agent personalization data is provided to the requesting game.

[0055] Figure 6An exemplary method 600 for importing agent personalized data to own an in-game NPC is depicted. For example, the method 600 can be performed by a game. The process begins with receiving a request to personalize an in-game NPC character. For example, the game can provide the user with the option of customizing the in-game NPC using the characteristics of one or more personalized agents associated with the user. Otherwise, the game can utilize a default NPC profile for the in-game NPC. When the user starts a new game or when the user encounters a new NPC during game play, a request for a personalized NPC can be received. In addition, the game can provide the user with the option of selecting specific agent characteristics to be imported, such as the agent's personality, the agent's game play style, how the agent communicates or interacts with the user, etc. At operation 604, a request is generated for agent personalized data and transmitted to a personalized agent service, such as a personalized agent that can control or save the user. In one example, the request can be for a specific agent personalized characteristic. Alternatively or additionally, the request can include information about the game and / or NPC owned by the agent. The personalized agent service can use the game and / or NPC information to select relevant agent characteristics.

[0056] In response to sending the request, agent personalization data is received at operation 606. In one aspect, the agent personalization data may be received and stored in a game file. Alternatively, a reference or instruction to access the agent personalization data may be received instead of receiving the agent personalization data. The game may use the reference or instruction to receive the agent personalization data as required by the game, or alternatively, the game may provide game state information to an agent personalization component of a personalized agent service, such as one or more machine learning models for controlling the agent, and receive the instruction or data in response to providing the data during game play.

[0057] After receiving the agent personalization data, the received data is analyzed at operation 608. In an example, the received agent personalization data is analyzed for game and / or NPC constraints. As previously discussed, importing agent personalization information into an in-game NPC without modification may result in a game-breaking scenario. For example, the unmodified application of agent personalization information may cause the NPC to be overpowered or underpowered, may change the NPC's personality in a manner that negatively affects the NPC's role in the story, etc. In this way, the agent personalization data is analyzed for the NPC's constraints (e.g., the NPC's available capabilities, the NPC's skill level, the NPC's personality constraints relative to the NPC's role in the story, the NPC's participating role, game constraints such as level or ability limits, etc.). Based on the analysis performed at operation 608, the agent personalization data is modified at operation 610. For example, the agent personalization data may be modified according to game or NPC constraints. The modification may include setting limits on the capabilities or skill levels provided by the agent personalization data, modifying or removing certain agent personality techniques that conflict with the NPC's defined role, etc.

[0058] The process continues to operation 612, where the NPC configuration file in the game is updated with the modified agent personalized data. For example, the NPC game file can be updated to include the modified agent personalized data. In this way, the game data for controlling the NPC (e.g., controlling the NPC actions in the game, controlling the NPC's dialogue responses, controlling the NPC's role during the game, etc.) is controlled. When doing so, the NPC is "owned" by the user's agent. In this way, the NPC is customized to interact with the user according to the user's preferences, adopt a game style that complements the user's preferred game style, adopt a game strategy that the user prefers, etc. At operation 614, the owned NPC is instantiated in the game to interact with the user. In one example, the instantiated NPC can be controlled according to the components of the personalized agent library discussed herein, although modified according to the game and NPC constraints as described above. Alternatively, the NPC can be controlled according to the updated game file including the modified agent personalized data.

[0059] Although the specific examples described herein relate to utilizing agents in a gaming environment, those skilled in the art will appreciate that the technology can be applied to generating and using agents in other types of environments, such as enterprise environments. For example, a personalized agent can be generated to help a user perform tasks in an enterprise environment, or use any other type of application.

[0060] Figure 7is a block diagram illustrating the physical components (e.g., hardware) of a computing device 700 with which aspects of the present disclosure may be practiced. The computing device components described below may be applicable to the computing devices described above. In a basic configuration, the computing device 700 may include at least one processing unit 702 and a system memory 704. Depending on the configuration and type of the computing device, the system memory 704 may include, but is not limited to, volatile storage devices (e.g., random access memory), non-volatile storage devices (e.g., read-only memory), flash memory, or any combination of such memories. The system memory 704 may include an operating system 705 and one or more program tools 706 suitable for performing various aspects disclosed herein. The operating system 705 may, for example, be suitable for controlling the operation of the computing device 700. In addition, aspects of the present disclosure may be practiced in conjunction with a graphics library, other operating systems, or any other application, and is not limited to any particular application or system. The basic configuration is Figure 7 708. The computing device 700 may have additional features or functionality. For example, the computing device 700 may also include additional data storage devices (removable and / or non-removable) such as, for example, magnetic disks, optical disks, or tapes. Such additional storage devices may be used to store data. Figure 7 , which is illustrated by a removable storage device 709 and a non-removable storage device 710.

[0061] As described above, a plurality of program tools and data files may be stored in the system memory 704. When executed on at least one processing unit 702, the program tools 706 (e.g., application programs 720) may perform processes including, but not limited to, the various aspects described herein. The application programs 720 include a personalized agent generator 730, NPC customization instructions 732, various APIs 734 disclosed herein, and instructions for performing the various processes disclosed herein. Other program tools that may be used according to aspects of the present disclosure may include email and contact applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided applications, and the like.

[0062] In addition, aspects of the present disclosure may be practiced in circuits on a single chip including discrete electronic components, packaged or integrated electronic chips containing logic gates, circuits utilizing a microprocessor, or circuits containing electronic components or a microprocessor. For example, aspects of the present disclosure may be practiced via a system on a chip (SOC), wherein Figure 7Each or more of the components shown in can be integrated onto a single integrated circuit. Such a SOC device may include one or more processing units, a graphics unit, a communication unit, a system virtualization unit, and various application functions, all of which are integrated (or "burned") onto a chip substrate as a single integrated circuit. When operated via a SOC, the functions described herein regarding the capabilities of the client-to-switch protocol can be operated via dedicated logic integrated with other components of the computing device 700 on a single integrated circuit (chip). Various aspects of the present disclosure may also be practiced using other technologies capable of performing logical operations, such as AND, OR, and NOT, including but not limited to mechanical, optical, fluid, and quantum technologies. In addition, various aspects of the present disclosure may be practiced within a general-purpose computer or any other circuit or system.

[0063] The computing device 700 may also have one or more input devices 712, such as a keyboard, a mouse, a pen, a sound or voice input device, a touch or sliding input device, etc. Output device(s) 714 may also be included, such as a display, a speaker, a printer, etc. The aforementioned devices are examples, and other devices may be used. The computing device 700 may include one or more communication connections 716 that allow communication with other computing devices 750. Examples of communication connections 716 include, but are not limited to, radio frequency (RF) transmitters, receivers, and / or transceiver circuits; universal serial bus (USB), parallel and / or serial ports.

[0064] The term computer-readable medium as used herein may include computer storage media. Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures or program tools). System memory 704, removable storage device 709 and non-removable storage device 710 are all examples of computer storage media (e.g., memory storage devices). Computer storage media may include RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage device, cassette, magnetic tape, disk storage device or other magnetic storage device, or any other product that can be used to store information and can be accessed by computing device 700. Any such computer storage medium may be part of computing device 700. Computer storage media does not include carrier waves or other propagated or modulated data signals.

[0065] Communication media may be embodied by computer readable instructions, data structures, program tools, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and includes any information delivery media. The term "modulated data signal" may describe a signal that has one or more characteristics set or changed in such a manner as to encode the information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.

[0066] Fig. 8A and Figure 8B A computing device or mobile computing device 800 is shown, such as a mobile phone, a smart phone, a wearable computer (such as a smart watch), a tablet computer, a laptop computer, etc., with which aspects of the present disclosure can be practiced. In some aspects, a client used by a user (e.g., client device 102 as shown in system 100 in FIG. 1 ) can be a mobile computing device. Fig. 8A , shows one aspect of a mobile computing device 800 for implementing various aspects. In a basic configuration, the mobile computing device 800 is a handheld computer with proxy input elements and output elements. The mobile computing device 800 typically includes a display 805 and one or more input buttons 810 that allow a user to input information into the mobile computing device 800. The display 805 of the mobile computing device 800 can also be used as an input device (e.g., a touch screen display). If included as an optional input element, the side input element 815 allows further user input. The side input element 815 can be a rotary switch, a button, or any other type of manual input element. In alternative aspects, the mobile computing device 800 can incorporate more or fewer input elements. For example, in some aspects, the display 805 may not be a touch screen. In yet another alternative aspect, the mobile computing device 800 is a portable telephone system, such as a cellular phone. The mobile computing device 800 can also include an optional keypad 835. The optional keypad 835 can be a physical keypad or a "soft" keypad generated on the touch screen display. In various aspects, output elements include a display 805 for showing a graphical user interface (GUI), a visual indicator 820 (e.g., a light emitting diode), and / or an audio transducer 825 (e.g., a speaker). In some aspects, the mobile computing device 800 includes a vibration transducer for providing tactile feedback to the user. In yet another aspect, the mobile computing device 800 incorporates input and / or output ports for sending or receiving signals to or from external devices, such as an audio input (e.g., a microphone jack), an audio output (e.g., a headphone jack), and a video output (e.g., an HDMI port).

[0067] Figure 8B1 is a block diagram illustrating an architecture of one aspect of a computing device, a server (e.g., an application server 104, an event data server 106, and an incident correlator 110, as shown in FIG. 1 ), a mobile computing device, and the like. That is, a mobile computing device 800 can be incorporated into a system 802 (e.g., a system architecture) to implement some aspects. The system 802 can be implemented as a "smart phone" capable of running one or more applications (e.g., a browser, email, calendar, contact manager, messaging client, game, and media client / player). In some aspects, the system 802 is integrated as a computing device, such as an integrated digital assistant (PDA) and a wireless phone.

[0068] One or more application programs 866 may be loaded into the memory 862 and run on or in association with the operating system 864. Examples of application programs include a phone dialer program, an email program, a information management (PIM) program, a word processing program, a spreadsheet program, an Internet browser program, a messaging program, and the like. The system 802 also includes a non-volatile storage area 868 within the memory 862. The non-volatile storage area 868 may be used to store persistent information that should not be lost if the system 802 loses power. The application programs 866 may use and store information in the non-volatile storage area 868, such as emails or other messages used by the email application, and the like. A synchronization application (not shown) also resides on the system 802 and is programmed to interact with a corresponding synchronization application residing on a host computer to keep information stored in the non-volatile storage area 868 synchronized with corresponding information stored at the host computer. It should be understood that other applications may be loaded into the memory 862 and run on the mobile computing device 800 described herein.

[0069] System 802 has a power source 870, which can be implemented as one or more batteries. Power source 870 can also include an external power source, such as an AC adapter or a powered docking cradle that replenishes or recharges the batteries.

[0070] The system 802 may also include a radio interface layer 872 that performs the functions of sending and receiving radio frequency communications. The radio interface layer 872 facilitates wireless connectivity between the system 802 and the "outside world" via a communications carrier or service provider. Transmissions to and from the radio interface layer 872 are performed under the control of the operating system 864. In other words, communications received by the radio interface layer 872 may be propagated to the application 866 via the operating system 864, and vice versa.

[0071] Visual indicator 820 (e.g., LED) can be used to provide visual notification, and / or audio interface 874 can be used to generate audible notification via audio transducer 825. In the configuration shown, visual indicator 820 is a light emitting diode (LED), and audio transducer 825 is a speaker. These devices can be directly coupled to power supply 870 so that when activated, they remain turned on for the duration indicated by the notification mechanism, even if processor 860 and other components may be turned off to save battery power. LED can be programmed to remain on indefinitely until the user takes action to indicate the power-on state of the device. Audio interface 874 is used to provide audible signals to the user and receive audible signals from the user. For example, in addition to being coupled to audio transducer 825, audio interface 874 can also be coupled to a microphone to receive audible input, such as promoting a telephone conversation. According to aspects of the present disclosure, the microphone can also be used as an audio sensor to facilitate the control of notifications, as described below. System 802 can also include a video interface 876, which enables the operation of the device connected to peripheral device port 830 to record still images, video streams, etc.

[0072] The mobile computing device 800 implementing the system 802 may have additional features or functionality. For example, the mobile computing device 800 may also include additional data storage devices (removable and / or non-removable), such as magnetic disks, optical disks, or tapes. Such additional storage devices may be used to store data or other data. Figure 8B , shown by non-volatile storage area 868.

[0073] Data / information generated or captured by the mobile computing device 800 and stored via the system 802 may be stored locally on the mobile computing device 800, as described above, or the data may be stored on any number of storage media that may be accessed by the device via the radio interface layer 872, or accessed via a wired connection between the mobile computing device 800 and a separate computing device associated with the mobile computing device 800 (e.g., a server computer in a distributed computing network such as the Internet). It should be understood that such data / information may be accessed via the mobile computing device 800 via the radio interface layer 872 or via a distributed computing network. Similarly, such data / information may be readily transferred between computing devices for storage and use in accordance with well-known data / information transfer and storage components, including electronic mail and collaborative data / information sharing systems.

[0074] In some examples, a system for generating a personalized agent is provided. The system includes at least one processor and a memory encoding computer executable instructions, which when executed by the at least one processor causes the at least one processor to perform operations, the operations including: generating agent personalized data, wherein generating personalized agent data includes: instantiating an agent for a first game in a game play session with a user, wherein the instantiated agent is operable to interact with a user playing the first game based on one or more machine learning models trained to play the game; receiving user interactions by the agent during the game play; generating an agent response to the user interaction via one or more machine learning models; instructing the agent to perform the agent response; receiving feedback on the agent response from the user; and generating agent personalized data based on the agent response and the user feedback; storing the agent personalized data; receiving a request for the agent personalized data from a second game; based on the request, identifying a subset of the agent personalized data; and sending at least the subset of the agent personalized data.

[0075] In some examples, at least one of the one or more machine learning models is trained using reinforcement learning to control agent game play in the first game.

[0076] In some examples, the one or more machine learning models include: a base model, a language model, a computer vision model, or a speech model.

[0077] In some examples, the request includes one or more of: information about the second game, information about a non-player character (NPC) of the second game associated with the request, identification of a particular agent, or identification of a particular agent characteristic.

[0078] In some examples, when the request includes information about the second game, identifying the subset of agent personalization data includes: determining a genre for the second game; and identifying agent personalization data associated with the genre.

[0079] In some examples, when the request includes information about an NPC, identifying a subset of the agent personalization data includes: determining one or more NPC characteristics, where the NPC characteristics include one or more of: NPC capabilities, NPC roles, or NPC characteristics; and identifying agent personalization data associated with the one or more NPC characteristics.

[0080] In some examples, when the request includes an identification of a particular agent, identifying the subset of agent personalization data includes identifying personalization data associated with the particular agent.

[0081] In some examples, a method for providing agent personalized data is provided, the method comprising: generating agent personalized data, wherein generating the personalized agent data comprises: instantiating an agent for use in a first game in a game play session with a user, wherein the instantiated agent is operable to interact with a user playing the first game based on one or more machine learning models trained to play the game; receiving user interactions by the agent during game play; generating an agent response to the user interaction via the one or more machine learning models; instructing the agent to perform the agent response; receiving feedback on the agent response from the user; and generating the agent personalized data based on the agent response and the user feedback; storing the agent personalized data; receiving a request for the agent personalized data from a second game; based on the request, identifying a subset of the agent personalized data; and sending at least the subset of the agent personalized data.

[0082] In some examples, at least one of the one or more machine learning models is trained using reinforcement learning to control agent game play in the first game.

[0083] In some examples, the one or more machine learning models include: a base model, a language model, a computer vision model, or a speech model.

[0084] In some examples, the request includes one or more of: information about the second game, information about a non-player character (NPC) of the second game associated with the request, identification of a particular agent, or identification of a particular agent characteristic.

[0085] In some examples, the request includes information about the second game, and identifying the subset of agent personalization data includes: determining a genre for the second game; and identifying agent personalization data associated with the genre.

[0086] In some examples, when the request includes information about an NPC, identifying a subset of the agent personalization data includes: determining one or more NPC characteristics, where the NPC characteristics include one or more of: NPC capabilities, NPC roles, or NPC characteristics; and identifying agent personalization data associated with the one or more NPC characteristics.

[0087] In some examples, when the request includes an identification of a particular agent, identifying the subset of agent personalization data includes identifying personalization data associated with the particular agent.

[0088] In some examples, when the request includes an identification of a particular agent characteristic, identifying the subset of agent personalization data includes identifying the particular agent characteristic from among a plurality of agent characteristics.

[0089] In some examples, a method for personalizing an NPC is provided, the method comprising: receiving a request to personalize a non-player character (NPC); sending a request for agent personalization data to an agent library; receiving the agent personalization data in response to sending the request; analyzing the agent personalization data for one or more constraints; modifying the agent personalization data based on the analysis of the one or more constraints; updating an NPC configuration file using the modified agent personalization data; and instantiating the NPC based on the updated NPC configuration file.

[0090] In some examples, a request to personalize an NPC is received when creating a new game or in response to meeting an NPC during game play.

[0091] In some examples, the one or more constraints relate to NPC characteristics, where the one or more NPC characteristics include one or more of: NPC abilities, NPC power levels, or NPC roles in the game story.

[0092] In some examples, modifying the agent personalization data includes at least one of: deleting the agent personalization data that does not conform to NPC characteristics, or modifying the agent personalization data to conform to NPC characteristics.

[0093] The description and illustration of one or more aspects provided in this application are not intended to limit or constrain the scope of the present disclosure claimed in any way. The disclosure claimed for protection should not be interpreted as being limited to any aspect or detail provided in the application, for example. Regardless of being shown and described in combination or separately, various features (agent structures and methods) are intended to be selectively included or omitted to produce aspects with a specific feature set. Having provided the description and illustration of the application, those skilled in the art can envision changes, modifications and alternative aspects within the spirit of the broader aspects of the general inventive concept embodied in the application, which do not depart from the broader scope of the disclosure claimed for protection.

Claims

1. A system comprising: at least one processor; as well as a memory encoding computer-executable instructions that, when executed by the at least one processor, cause the at least one processor to perform operations comprising: Generate agent personalized data, wherein generating personalized agent data includes: instantiating an agent for use in a first game in a game play session with a user, wherein the instantiated agent is operable to interact with the user playing the first game based on one or more machine learning models trained to play the game; receiving, by the agent, user interactions during game play; generating, via the one or more machine learning models, an agent response to the user interaction; instructing the agent to execute the agent response; receiving feedback from the user on the agent response; and generating agent personalization data based on the agent response and the user feedback; storing the agent personalized data; receiving a request for agent personalization data from a second game; Based on the request, identifying a subset of the agent personalization data; and At least a subset of the agent personalization data is sent.

2. The system of claim 1 , wherein at least one of the one or more machine learning models is trained using reinforcement learning to control agent game play in the first game.

3. The system of claim 1, wherein the one or more machine learning models include: Basic model, Language Model, Computer vision models, or Voice model.

4. The system of claim 1, wherein the request comprises one or more of: Information about the second game, information about a non-player character (NPC) of the second game associated with the request, the identity of a specific agent, or The identifier of a specific agent characteristic.

5. The system of claim 4, wherein when the request includes information about the second game, identifying the subset of the agent personalization data comprises: determining a genre for the second game; as well as Agent personalization data associated with the genre is identified.

6. The system of claim 4, wherein when the request includes information about the NPC, identifying the subset of the agent personalization data comprises: One or more NPC characteristics are determined, wherein the NPC characteristics include one or more of the following: NPC abilities, NPC side effect, or NPC characteristics; as well as Agent personalization data associated with the one or more NPC characteristics is identified.

7. The system of claim 4, wherein when the request includes the identification of the particular agent, identifying the subset of agent personalization data includes identifying personalization data associated with the particular agent.

8. The system of claim 4, wherein when the request includes the identification of the specific agent characteristic, identifying the subset of the agent personalization data includes identifying the specific agent characteristic from a plurality of agent characteristics.

9. A method comprising: Generate agent personalized data, wherein generating personalized agent data includes: instantiating an agent for use in a first game in a game play session with a user, wherein the instantiated agent is operable to interact with the user playing the first game based on one or more machine learning models trained to play the game; receiving, by the agent, user interactions during game play; generating, via the one or more machine learning models, an agent response to the user interaction; instructing the agent to execute the agent response; receiving feedback from the user on the agent response; and generating agent personalization data based on the agent response and the user feedback; storing the agent personalized data; receiving a request for agent personalization data from a second game; Based on the request, identifying a subset of the agent personalization data; and At least a subset of the agent personalization data is sent.

10. The method of claim 9, wherein the request comprises one or more of: Information about the second game, information about a non-player character (NPC) of the second game associated with the request, the identity of a specific agent, or The identifier of a specific agent characteristic.

11. The method of claim 10, wherein when the request includes information about the second game, identifying the subset of the agent personalization data comprises: determining a genre for the second game; as well as Agent personalization data associated with the genre is identified.

12. A method comprising: Receive requests for personalized non-player characters (NPCs); Sending a request for agent personalization data to the agent library; In response to sending the request, receiving the agent personalization data; analyzing the agent personalization data for one or more constraints; modifying said agent personalization data based on said analysis of said one or more constraints; updating the NPC configuration file using the modified agent personalization data; as well as The NPC is instantiated based on the updated NPC configuration file.

13. The method of claim 12, wherein the request to personalize the NPC is received when creating a new game or in response to meeting the NPC during game play.

14. The method of claim 12, wherein the one or more constraints relate to NPC characteristics, wherein the one or more NPC characteristics include one or more of the following: NPC abilities, NPC skill level, or The role of the NPC in the game story.

15. The method of claim 14, wherein modifying the agent personalization data comprises at least one of: Deleting agent personalization data that does not fit the characteristics of the NPC in question, or The agent personalization data is modified to conform to the NPC characteristics.