<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dhanalakshmi-bn</title>
    <description>The latest articles on DEV Community by Dhanalakshmi-bn (@dhanalakshmibn).</description>
    <link>https://dev.to/dhanalakshmibn</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3935225%2F1af94e9c-d32b-4e1d-b7af-7551639f60f0.png</url>
      <title>DEV Community: Dhanalakshmi-bn</title>
      <link>https://dev.to/dhanalakshmibn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dhanalakshmibn"/>
    <language>en</language>
    <item>
      <title>Novasas Agent: Building an AI Support System That Actually Remembers Customers</title>
      <dc:creator>Dhanalakshmi-bn</dc:creator>
      <pubDate>Tue, 19 May 2026 17:00:00 +0000</pubDate>
      <link>https://dev.to/dhanalakshmibn/novasas-agent-building-an-ai-support-system-that-actually-remembers-customers-1fj8</link>
      <guid>https://dev.to/dhanalakshmibn/novasas-agent-building-an-ai-support-system-that-actually-remembers-customers-1fj8</guid>
      <description>&lt;p&gt;Artificial Intelligence has transformed modern customer support systems by enabling faster and smarter interactions. AI-powered assistants can now answer questions, automate workflows, and assist customers efficiently.&lt;/p&gt;

&lt;p&gt;However, despite these advancements, most AI support systems still suffer from one major limitation:&lt;/p&gt;

&lt;p&gt;They forget everything.&lt;/p&gt;

&lt;p&gt;Traditional AI agents treat every conversation as a completely new interaction. Customers repeatedly explain the same issues, re-enter their details, and lose conversational context every time they return.&lt;/p&gt;

&lt;p&gt;This creates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;repetitive conversations&lt;/li&gt;
&lt;li&gt;poor customer experience&lt;/li&gt;
&lt;li&gt;lack of personalization&lt;/li&gt;
&lt;li&gt;inefficient support systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So we built Novasas Agent, an AI-powered customer support system capable of remembering previous customer interactions and using contextual memory to provide personalized responses.&lt;/p&gt;

&lt;p&gt;But instead of simply claiming our AI had memory, we designed a real-time side-by-side comparison dashboard to visually demonstrate the difference between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI without memory&lt;/li&gt;
&lt;li&gt;AI with memory&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This became the core concept of our project.&lt;/p&gt;

&lt;p&gt;The Problem With Traditional AI Systems&lt;/p&gt;

&lt;p&gt;Most AI support systems today work statelessly.&lt;br&gt;
The workflow typically looks like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Customer asks a question&lt;/li&gt;
&lt;li&gt;AI responds&lt;/li&gt;
&lt;li&gt;Conversation ends&lt;/li&gt;
&lt;li&gt;AI forgets everything&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When the same customer returns later, the AI behaves as if it has never interacted with them before.&lt;br&gt;
For example:&lt;/p&gt;

&lt;p&gt;First Interaction&lt;br&gt;
Customer:&lt;br&gt;
"I was charged twice for my subscription this month."&lt;br&gt;
AI:&lt;br&gt;
"I’m sorry to hear that. Let me help you."&lt;br&gt;
Follow-Up Interaction&lt;br&gt;
Customer:&lt;br&gt;
"I’m following up on my refund request."&lt;br&gt;
Traditional AI:&lt;br&gt;
"Can you explain your issue again?"&lt;/p&gt;

&lt;p&gt;This makes customer support feel robotic and repetitive.&lt;/p&gt;

&lt;p&gt;We wanted our AI system to behave more like a real support agent — one that remembers customers and understands previous conversations.&lt;/p&gt;

&lt;p&gt;Our Solution: Novasas Agent&lt;/p&gt;

&lt;p&gt;To visually demonstrate the impact of memory, we designed a dual-chat dashboard where both systems operate side-by-side in real time.&lt;/p&gt;

&lt;p&gt;This allowed users to instantly compare how memory changes AI behavior.&lt;/p&gt;

&lt;p&gt;Tech Stack Used&lt;/p&gt;

&lt;p&gt;We built our project using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Groq API&lt;/li&gt;
&lt;li&gt;GitHub&lt;/li&gt;
&lt;li&gt;Hindsight API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the language model, we used:&lt;/p&gt;

&lt;p&gt;self.model = "llama-3.3-70b-versatile"&lt;/p&gt;

&lt;p&gt;This model provided fast inference and clean conversational responses for our AI assistant.&lt;/p&gt;

&lt;p&gt;Building the AI Support Agent&lt;/p&gt;

&lt;p&gt;The backend of Novasas Agent was built entirely using Python.&lt;br&gt;
The AI receives:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;customer name&lt;/li&gt;
&lt;li&gt;customer ID&lt;/li&gt;
&lt;li&gt;customer issue
and generates support responses using Groq-powered LLMs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Initially, our memory system was implemented using a Python dictionary:&lt;br&gt;
Python&lt;br&gt;
self.customer_history = {}&lt;/p&gt;

&lt;p&gt;This allowed the AI to temporarily store customer interactions during runtime.&lt;/p&gt;

&lt;p&gt;Retrieving Customer Memory&lt;/p&gt;

&lt;p&gt;One of the most important components of our project was retrieving previous customer interactions.&lt;br&gt;
We implemented a memory retrieval function:&lt;/p&gt;

&lt;p&gt;def get_customer_history(self, customer_id: str) -&amp;gt; str:&lt;br&gt;
    """Get previous interactions for a customer"""&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if customer_id in self.customer_history:
    history = self.customer_history[customer_id]
    return f"\nPrevious interactions with this customer:\n{history}"

return "\nThis is the customer's first interaction with us."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This allowed the AI agent to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;identify returning customers&lt;/li&gt;
&lt;li&gt;retrieve earlier interactions&lt;/li&gt;
&lt;li&gt;provide contextual responses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Saving Customer Interactions&lt;/p&gt;

&lt;p&gt;To maintain conversational memory, we created a function that stores customer interactions dynamically.&lt;/p&gt;

&lt;p&gt;def save_interaction(self, customer_id: str,&lt;br&gt;
                     customer_name: str,&lt;br&gt;
                     message: str,&lt;br&gt;
                     response: str):&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;interaction = f"- {customer_name}: {message}\n Agent: {response}"

if customer_id not in self.customer_history:
    self.customer_history[customer_id] = ""

self.customer_history[customer_id] += interaction + "\n"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Every interaction gets appended to the customer’s history, enabling the AI to remember previous conversations.&lt;/p&gt;

&lt;p&gt;Building the Memory-Enabled AI&lt;/p&gt;

&lt;p&gt;Our memory-enabled support function retrieves customer history before generating a response.&lt;/p&gt;

&lt;p&gt;def handle_support_request(self,&lt;br&gt;
                           customer_name: str,&lt;br&gt;
                           customer_id: str,&lt;br&gt;
                           message: str) -&amp;gt; str:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;customer_context = self.get_customer_history(customer_id)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The retrieved context is injected directly into the AI prompt.&lt;br&gt;
This enables the model to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;recognize returning customers&lt;/li&gt;
&lt;li&gt;recall earlier issues&lt;/li&gt;
&lt;li&gt;generate more personalized support responses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Building the Stateless AI Version&lt;/p&gt;

&lt;p&gt;To demonstrate the limitations of traditional AI systems, we also created a version without memory.&lt;/p&gt;

&lt;p&gt;def handle_support_request_no_memory(&lt;br&gt;
        self,&lt;br&gt;
        customer_name: str,&lt;br&gt;
        customer_id: str,&lt;br&gt;
        message: str) -&amp;gt; str:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;customer_context = "\nThis is the customer's first interaction with us."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Unlike the memory-enabled version, this system always treats users as completely new customers.&lt;/p&gt;

&lt;p&gt;This comparison became one of the strongest parts of our project.&lt;br&gt;
Designing the Dual-Chat Dashboard&lt;br&gt;
Instead of building a simple chatbot interface, we wanted users to instantly understand the importance of AI memory.&lt;/p&gt;

&lt;p&gt;So we created a dual-chat dashboard:&lt;br&gt;
Left Side — With Memory&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;retrieves customer history&lt;/li&gt;
&lt;li&gt;remembers previous interactions&lt;/li&gt;
&lt;li&gt;provides personalized replies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Right Side — Without Memory&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generic responses&lt;/li&gt;
&lt;li&gt;no contextual understanding&lt;/li&gt;
&lt;li&gt;stateless behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This side-by-side visual demonstration clearly shows how memory improves customer experience.&lt;/p&gt;

&lt;p&gt;First Interaction&lt;/p&gt;

&lt;p&gt;During the first interaction, both AI systems respond similarly because no previous context exists yet.&lt;/p&gt;

&lt;p&gt;The customer reports a billing issue:&lt;/p&gt;

&lt;p&gt;"I was charged twice for my subscription this month."&lt;/p&gt;

&lt;p&gt;The memory-enabled system stores the interaction for future retrieval.&lt;/p&gt;

&lt;p&gt;Second Interaction&lt;/p&gt;

&lt;p&gt;When the customer returns later and asks:&lt;/p&gt;

&lt;p&gt;"Following up on my refund for the double charges issue"&lt;/p&gt;

&lt;p&gt;the difference becomes obvious.&lt;/p&gt;

&lt;p&gt;With Memory&lt;/p&gt;

&lt;p&gt;The AI remembers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;previous billing issue&lt;/li&gt;
&lt;li&gt;transaction details&lt;/li&gt;
&lt;li&gt;earlier conversation context
and responds accordingly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without Memory&lt;/p&gt;

&lt;p&gt;The AI treats the customer as completely new and asks for information again.&lt;br&gt;
This visual comparison became the highlight of our project.&lt;/p&gt;

&lt;p&gt;Challenges We Faced&lt;/p&gt;

&lt;p&gt;Like most engineering projects, we encountered several technical challenges during development.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Memory Reset After Restart&lt;br&gt;
Initially, customer memory was stored only in runtime variables.&lt;br&gt;
Whenever the application restarted, all memory disappeared.&lt;br&gt;
This meant the AI only had temporary conversational memory instead of true persistent memory.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API Handling&lt;br&gt;
Handling API responses consistently was another challenge.&lt;br&gt;
We had to carefully manage:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;API calls&lt;/li&gt;
&lt;li&gt;response formatting&lt;/li&gt;
&lt;li&gt;conversation flow&lt;/li&gt;
&lt;li&gt;contextual prompts
to ensure smooth user interactions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Why Persistent Memory Matters&lt;br&gt;
Modern AI systems are becoming more conversational, but most still fail to maintain long-term context.&lt;br&gt;
Persistent memory can significantly improve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;customer support&lt;/li&gt;
&lt;li&gt;AI assistants&lt;/li&gt;
&lt;li&gt;educational chatbots&lt;/li&gt;
&lt;li&gt;productivity systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By enabling AI systems to remember previous interactions, users receive:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;personalized responses&lt;/li&gt;
&lt;li&gt;smoother conversations&lt;/li&gt;
&lt;li&gt;reduced repetition&lt;/li&gt;
&lt;li&gt;more human-like interactions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Our project demonstrates how even simple memory systems can dramatically improve AI behavior.&lt;/p&gt;

&lt;p&gt;Future Improvements&lt;/p&gt;

&lt;p&gt;Although our current prototype works successfully, we plan to improve the project further with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-user authentication&lt;/li&gt;
&lt;li&gt;Voice-based support&lt;/li&gt;
&lt;li&gt;Advanced memory databases&lt;/li&gt;
&lt;li&gt;Cloud deployment&lt;/li&gt;
&lt;li&gt;Long-term semantic memory&lt;/li&gt;
&lt;li&gt;Smarter retrieval systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These upgrades would make the system more scalable and production-ready.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;One of the biggest weaknesses of traditional AI systems is their inability to maintain memory and context across interactions.&lt;/p&gt;

&lt;p&gt;With Novasas Agent, our goal was to demonstrate how persistent memory can improve customer support experiences in a simple yet impactful way.&lt;/p&gt;

&lt;p&gt;By visually comparing AI systems with and without memory, we were able to clearly show why contextual AI matters.&lt;/p&gt;

&lt;p&gt;This project taught us that AI should not just respond.&lt;/p&gt;

&lt;p&gt;AI should remember.&lt;/p&gt;

&lt;p&gt;Because memory is what makes interactions feel intelligent, personal, and human.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>opensource</category>
      <category>api</category>
    </item>
  </channel>
</rss>
