Why the AI character would not calm down, and how I fixed it
An early version of Say It Ahead had a basic problem. A user could listen carefully, ask good questions, and offer a reasonable plan, but the AI character might still sound just as upset as it did at the start. That made the practice feel arbitrary. The user could not tell whether anything they said had changed the conversation. The character had a strong opening mood, but no clear reason to move…
In the early stages of the AI character's design, Say It Ahead encountered a fundamental issue. While users could engage in conversations, provide thoughtful questions, and formulate solid plans, the AI's temperament remained unchanged. This lack of adaptability made the practice feel arbitrary, with users unable to determine whether their input had any impact on the conversation's tone.
The root cause of this problem was the AI's inability to progress beyond its initial state of distress, lacking a clear mechanism to move forward from its strong opening mood. The solution wasn't a collection of mystical calming phrases; instead, it hinged on modeling the dynamics of a constructive conversation. This article elucidates this model, the role of the live progress display, and the system's potential shortcomings.
To begin, the initial character was adept at portraying an upset parent. The prompt introduced an angry parent, a complaint, and a directive for the voice to push back. The result was convincing for the first few turns. However, troubles emerged when users demonstrated effective conversation handling. The model had been informed about the parent's grievances but not about what would gradually shift the parent's disposition towards openness.
Consequently, the character often perceived anger as the permanent personality of the character. Even a well-crafted inquiry could lead to an answer, but the following response would revert to the original complaint, as if no trust had been established. Attempts to mitigate this issue by adding instructions such as "calm down when appropriate" proved ineffective.
The term "appropriate" proved too vague. The model required specific knowledge about what evidence to observe and how its behavior should evolve in response to this evidence. To create a compelling character, it needed a reason to resist. Each ready-made scenario now provides the character with more than just a mood. It outlines what transpired, the character's beliefs, the facts they possess, the reasons behind their skepticism towards a simple solution, and the appearance of a credible resolution.
For instance, a parent might reject a general promise because two prior meetings yielded no results. A manager might be less concerned about a missed deadline and more worried about the recurrence of poor communication. An interviewer might appreciate transferable experience, provided a concrete example is presented. This hidden context equips the character with something to protect and provides the conversation with a direction.
The character can reveal useful insights gradually and become more constructive when the user addresses the genuine concern. It doesn't have to abruptly transition from being angry to amicable. Four broad tasks, acting as the backbone of the guided scenarios, replaced the need for magic words. The current scenarios utilize four broad roles: acknowledging the concern, posing a useful question, reflecting what you heard, and agreeing on a specific next step.
These roles are not explicit instructions for the user to recite; rather, the character is directed to interpret the meaning of the response, not search for precise words. The sequence matters, but it is not meant to be strictly adhered to. Proposing a solution before fully grasping the problem often comes off as dismissive, so the character typically expects acknowledgment and clarification first.
A single thoughtful response can also cover multiple roles. The system can transition directly to the highest consecutive role it detected. Progress is cumulative. Once the user unequivocally acknowledges the concern, a poorly timed subsequent sentence should not erase that accomplishment and revert the character to its starting intensity.
The character can challenge a new issue while preserving the trust already established. Acknowledge: Identify the concern before elaborating on your stance. Clarify: Pose a pertinent question instead of presuming. Reflect: Reiterate what you've heard and verify the accuracy of your understanding. Move forward: Outline the forthcoming actions, assign responsibility, or specify a follow-up timeline.
The character reports progress silently during the conversation. The AI employs a browser tool named update_practice_progress to send the highest job completed along with a brief piece of evidence derived from the user's actual words. This tool updates the progress panel, but the character refrains from discussing scores or departing from the role-play.
This approach was crucial for two reasons. Firstly, it links the character's behavior to the visible interface. If the character becomes more open after a useful question, the user can observe that the practice has transitioned from acknowledgment to clarification. Secondly, the evidence establishes a diagnostic trail when the character's behavior appears incorrect.
The live signal is a model judgment subject to potential errors, such as missing a suitable response, prematurely reporting progress, or failing to invoke the tool. Therefore, the interface treats this signal as guidance during practice rather than a definitive or objective evaluation. The post-call review conducted by ElevenLabs is a separate appraisal of the conversation.
It assesses the same four roles and furnishes a result and rationale for each. The Say It Ahead platform juxtaposes these results with the live character's performance, displaying the number of roles identified. The live character and the post-call reviewer do not converge on a single definitive answer. The live character decides on responses in real-time, while the reviewer benefits from the full conversation's context.
However, the reviewer is also a model judgment, and disagreements between the two are possible. A diagnostic view records both counts, enabling the identification of discrepancies between the live character's and the post-call reviewer's assessments. This disparity can serve as a valuable bug report, pointing to vague criteria, overlooked tool calls, or responses that appear more fitting in context than in the transcript.
Crucially, keeping these judgments separate fosters honesty, acknowledging that a generated role-play is not a validated assessment and that a percentage cannot mask uncertainties in how the conversation was interpreted. Ultimately, reaching a satisfactory conclusion does not equate to winning an argument. The objective is not to make the other party content or to prove the user's correctness.
Certain concerns warrant continued seriousness. For example, a principal should not become cheerful about a safety issue, and an HR partner should not agree with a claim without thoroughly understanding the facts. An appropriate resolution is more nuanced. It entails the other party feeling accurately heard, relevant facts being presented, and both parties comprehending the situation.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.