Conversational agents are software applications that interact autonomously with end-users in natural language, supporting task completion, conversational web, service delivery, as well as social engagement and entertainment. Known under other names such as chatbots or digital assistants, they have become a ubiquitous component of modern platforms and services, especially with the rise of Large Language Models (LLMs) which highly augment their natural language understanding and text generation capabilities.
Conceptually, conversational agents may support different types of conversations, ranging from predefined, task-oriented dialogues based on deterministic rules to open-ended interactions enabled by LLMs, or a combination of both.

On the other hand, personalized conversational agents aim to further elevate the users’ experience by adapting the interaction to fit an individual user’s needs, preferences, and context offering an optimal user experience. For instance, for extroverted users, aligning conversational agents to act extroverted by adapting communication styles has been shown to increase engagement and usage intention (see here).

While personalized conversational agents have been widely studied (both in terms of supporting technologies and their effects on users) their implementation remains complex and requires substantial technical expertise.

In this sense, our latest paper proposes a low-code/no-code pipeline to create personalized conversational agents, enabling non-technical people to define the type of users they want to support, the adaptations to be done for each user type and the generation of the corresponding personalized agents.

If you are interested in learning more about the pipeline, you’ll find a preprint of the paper on arxiv. The paper also contains the results of a user study that was conducted, where we compare how participants with a technical and non-technical background perceive the pipeline’s usability and usefulness. A peer-reviewed version is published at the International Conference on Web Engineering (ICWE 2026)
If you only care about the tooling, every part of the personalization pipeline has been implemented and integrated into the BESSER web-editor with a personalized gym agent being a default template! You’ll find the source code in the main repository of BESSER 

The low-code personalization pipeline

Personalization chatbot development process

1. Modeling the user profile, agent, and agent profile

Here, the designer models the user profiles (representing the types of users we target in our application), the base agent model (with the common functionality) and the agent profiles (representing the different agent adaptations to be mapped to the corresponding user profiles). Separating the agent profile from the base agent model makes the agent profiles agent-agnostic, as they can be applied to any agent. Similarly, separating user profiles from agent profiles also enables the mapping of the same agent profile to different users, fostering reusability.

In the following metamodel, we combine the base agent, the user profile, and the agent profile / configuration.

UML class diagram showing personalized conversational agent metamodel with agent, user, and configuration components

We have one concrete syntax to define each part of our personalized agent (user, agent and agent configuration), which we’ll illustrate with a running example of a gym agent. The gym agent’s job is to provide answers to common questions related to working out, while providing adapted answers with different styles depending on the end-user.

We propose a graphical modeling language to model user profiles based on a modeling language presented in a previous paper (see here). This graphical extension currently only consists of a subset of the complete syntax, chosen to represent the most commonly modeled user information. The idea here is to model the different user categories you expect are relevant for your application. Given our gym example, it makes sense to take into account whether our user has any disability (such as paraplegia), and many other attributes (age, spoken language, size, etc.)

UML model diagram showing User, Accessibility, Disability, and Personal Information entities with relationships

For modeling the agent, our graphical language is (as usual for chatbots) based on the UML state machine formalism. This is directly linked to the BESSER-Agentic-Framework’s philosophy of combining the best of both worlds between deterministic states with pre-defined responses and the option to opt for LLMs if necessary (where you’ll find more about on the official repository, and blog post 1 and blog post 2). As seen in the picture below, one defines which intents (user sentences) can be understood by the agent, and with the state machine, define the different states the agent can find itself in, the transition rules with the arrows, and the actions executed in each state (such as a predefined answer or an LLM powered AI response).

State diagram for fitness chatbot showing initial greeting, idle state, and routing to training plans or nutrition advice.

Finally, we propose a form-based syntax to configure different aspects of the conversational agent, which we call agent profile. We separate these aspects into four distinct categories: Presentation (how content is delivered), Modality (channel over which content is delivered), Content (what is shown or done), and Behavior (how the interaction unfolds). Per user profile, an agent profile will exist and will be applied to the base agent.

Conversational agent configuration interface with presentation, modality, content, and behavior settings

2. Design time personalization and 3. Model validation

As a sidenote, depending on the targeted component, the adaptation will be applied at different stages of the pipeline.

If the agent contains predefined responses (and not only AI ones), any personalization related to text will be applied at the model level. A process will be started where all the messages are combined with a set of prompts and sent to an external LLM to transform the messages into their adapted form.

Once finished, the personalized model (with the personalized messages) will be given to the designer. This allows the designer to check the changed messages and validate whether they fit their expectations and do not contain harmful content (biases / hallucinations).

4. Runtime personalization

During code generation, we apply the deterministic personalization. This refers to either features that are turned on or not (such as voice recognition or increasing text size) or appending context to the LLMs. The latter specifically refers to the AI responses where LLMs are used. Compared to the predefined messages, which are static, we don’t have the opportunity to check the automated generation and need to hope that the LLM behaves as expected. It’s, as usual, a tradeoff between controlled but less creative answers and open but riskier answers. The processes for predefined and AI responses are shown in the figure below. Two-stage pipeline comparing design-time and generation-time personalization for conversational agents

The generated app

In its current version, the generated app (a BAF agent) will provide a menu where end-users can log in and then select the profile that corresponds the most to them. Once chosen, they can start chatting with the agent that will provide a personalized experience.

Agent Platform interface showing Gym Agent profile selection for paraplegic users

Recap

We lower the barrier to create personalized conversational agents by providing a pipeline using low-code and no-code principles. The web-based implementation and the automatic generation of code further improves the accessibility of the approach, removing any need for the designer to install software or do any manual programming. Furthermore, to start the agent, one can either launch it locally, or deploy it using functions integrated into the web-based editor. A pilot study which prompted participants to try the tool and evaluate the perceived usability and usefulness showed promising results, for both technical and non-technical participants.

In the future, we plan to add additional personalization options, conduct a larger user study to evaluate both the creation process but also the quality of the produced agents, and explore opportunities to do dynamic user profiling during runtime. Beyond conversational agents, we will attempt to expand this pipeline to personalize additional interfaces.

Want to build better software faster?

Want to build better software faster?

Get the latest news in software modeling, model-based and low-code development

Thanks for your interest. Check your inbox and confirm your subscription!

Pin It on Pinterest

Share This