<?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: Vinay Vadlakonda</title>
    <description>The latest articles on DEV Community by Vinay Vadlakonda (@vinay_vadlakonda_e4dc05c2).</description>
    <link>https://dev.to/vinay_vadlakonda_e4dc05c2</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4150138%2F84c776ec-48d9-49c2-b737-aa38079970fe.png</url>
      <title>DEV Community: Vinay Vadlakonda</title>
      <link>https://dev.to/vinay_vadlakonda_e4dc05c2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vinay_vadlakonda_e4dc05c2"/>
    <language>en</language>
    <item>
      <title>ResolveIQ.AI: Building an AI Customer Support Agent That Actually Remembers</title>
      <dc:creator>Vinay Vadlakonda</dc:creator>
      <pubDate>Tue, 29 Sep 2026 15:31:48 +0000</pubDate>
      <link>https://dev.to/vinay_vadlakonda_e4dc05c2/resolveiqai-building-an-ai-customer-support-agent-that-actually-remembers-4af2</link>
      <guid>https://dev.to/vinay_vadlakonda_e4dc05c2/resolveiqai-building-an-ai-customer-support-agent-that-actually-remembers-4af2</guid>
      <description>&lt;p&gt;AI Customer Support That Remembers — built for the Hackathon theme “AI Agents That Learn Using Hindsight."&lt;/p&gt;

&lt;p&gt;Most customer-support chatbots have one major limitation: they forget.&lt;/p&gt;

&lt;p&gt;A customer can explain the same problem multiple times, across different conversations, and the AI may still behave as if it is meeting them for the first time.&lt;/p&gt;

&lt;p&gt;We wanted to build something different.&lt;/p&gt;

&lt;p&gt;Meet ResolveIQ.AI — an AI-powered customer support agent designed to remember useful customer context across conversations, combine that memory with company knowledge, understand customer intent and sentiment, and involve a human agent when necessary.&lt;/p&gt;

&lt;p&gt;The core idea is simple:&lt;/p&gt;

&lt;p&gt;Chat + Memory + Knowledge + Analysis + Escalation&lt;/p&gt;

&lt;p&gt;The Problem&lt;/p&gt;

&lt;p&gt;Imagine a customer contacts support:&lt;/p&gt;

&lt;p&gt;«“My payment failed while using UPI.”»&lt;/p&gt;

&lt;p&gt;The AI helps troubleshoot the issue.&lt;/p&gt;

&lt;p&gt;A few days later, the same customer returns:&lt;/p&gt;

&lt;p&gt;«“I am having the payment problem again.”»&lt;/p&gt;

&lt;p&gt;A conventional chatbot may ask:&lt;/p&gt;

&lt;p&gt;«“Could you please explain your payment issue?”»&lt;/p&gt;

&lt;p&gt;ResolveIQ takes a different approach.&lt;/p&gt;

&lt;p&gt;It retrieves relevant information from the customer's previous interaction, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Previous payment issue&lt;/li&gt;
&lt;li&gt;UPI usage&lt;/li&gt;
&lt;li&gt;Previous troubleshooting attempts&lt;/li&gt;
&lt;li&gt;Customer environment&lt;/li&gt;
&lt;li&gt;Whether the previous issue was resolved&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI can then respond using that context rather than starting from zero.&lt;/p&gt;

&lt;p&gt;That persistent memory is the key idea behind ResolveIQ.&lt;/p&gt;

&lt;p&gt;How ResolveIQ Works&lt;/p&gt;

&lt;p&gt;The complete workflow looks like this:&lt;/p&gt;

&lt;p&gt;Customer Message&lt;br&gt;
       ↓&lt;br&gt;
    Flask API&lt;br&gt;
       ↓&lt;br&gt;
   Support Agent&lt;br&gt;
       ↓&lt;br&gt;
Retrieve Hindsight Memories&lt;br&gt;
       ↓&lt;br&gt;
Search Company Knowledge&lt;br&gt;
       ↓&lt;br&gt;
Analyze Intent / Sentiment / Urgency&lt;br&gt;
       ↓&lt;br&gt;
Generate Personalized Response&lt;br&gt;
       ↓&lt;br&gt;
Check Escalation Conditions&lt;br&gt;
       ↓&lt;br&gt;
Store Useful Memory&lt;br&gt;
       ↓&lt;br&gt;
Save Conversation in MySQL&lt;br&gt;
       ↓&lt;br&gt;
Return Response&lt;/p&gt;

&lt;p&gt;The project uses Hindsight as the long-term AI memory layer, while MySQL handles structured application data.&lt;/p&gt;

&lt;p&gt;What Makes Hindsight Important?&lt;/p&gt;

&lt;p&gt;Hindsight isn't being used as a simple database.&lt;/p&gt;

&lt;p&gt;It acts as the AI's long-term memory layer.&lt;/p&gt;

&lt;p&gt;ResolveIQ can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Store useful customer interaction information.&lt;/li&gt;
&lt;li&gt;Recall relevant information during future conversations.&lt;/li&gt;
&lt;li&gt;Personalize responses using previous interactions.&lt;/li&gt;
&lt;li&gt;Remember previous troubleshooting attempts.&lt;/li&gt;
&lt;li&gt;Recognize repeated unresolved problems.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This creates an important difference:&lt;/p&gt;

&lt;p&gt;Traditional Chatbot&lt;br&gt;
Customer → Question → Answer&lt;/p&gt;

&lt;p&gt;ResolveIQ&lt;br&gt;
Customer&lt;br&gt;
   ↓&lt;br&gt;
Previous Context&lt;br&gt;
   ↓&lt;br&gt;
Hindsight Memory&lt;br&gt;
   ↓&lt;br&gt;
Company Knowledge&lt;br&gt;
   ↓&lt;br&gt;
AI Analysis&lt;br&gt;
   ↓&lt;br&gt;
Personalized Response&lt;/p&gt;

&lt;p&gt;The goal isn't simply to make the AI remember everything.&lt;/p&gt;

&lt;p&gt;The goal is to make it remember useful information.&lt;/p&gt;

&lt;p&gt;Hindsight + Company Knowledge&lt;/p&gt;

&lt;p&gt;Memory alone isn't enough.&lt;/p&gt;

&lt;p&gt;An AI support agent also needs reliable information about the company and its products.&lt;/p&gt;

&lt;p&gt;ResolveIQ therefore includes a lightweight knowledge-base system using synthetic company support articles.&lt;/p&gt;

&lt;p&gt;When a customer asks a question, the system performs:&lt;/p&gt;

&lt;p&gt;User Question&lt;br&gt;
     ↓&lt;br&gt;
TF-IDF Vectorization&lt;br&gt;
     ↓&lt;br&gt;
Cosine Similarity&lt;br&gt;
     ↓&lt;br&gt;
Relevant Knowledge Articles&lt;br&gt;
     ↓&lt;br&gt;
Information Supplied to AI&lt;br&gt;
     ↓&lt;br&gt;
AI Response&lt;/p&gt;

&lt;p&gt;This allows ResolveIQ to combine two important sources of context:&lt;/p&gt;

&lt;p&gt;Hindsight Memory&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Company Knowledge&lt;/p&gt;

&lt;p&gt;The AI can therefore consider both the customer's history and the company's available support information.&lt;/p&gt;

&lt;p&gt;Understanding the Customer&lt;/p&gt;

&lt;p&gt;ResolveIQ doesn't only process the content of a message.&lt;/p&gt;

&lt;p&gt;It also analyzes the customer's situation.&lt;/p&gt;

&lt;p&gt;The system identifies:&lt;/p&gt;

&lt;p&gt;Intent&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Payment issue&lt;/li&gt;
&lt;li&gt;Billing question&lt;/li&gt;
&lt;li&gt;Refund request&lt;/li&gt;
&lt;li&gt;Subscription change&lt;/li&gt;
&lt;li&gt;Account access&lt;/li&gt;
&lt;li&gt;Technical issue&lt;/li&gt;
&lt;li&gt;Product question&lt;/li&gt;
&lt;li&gt;Cancellation&lt;/li&gt;
&lt;li&gt;General question&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sentiment&lt;/p&gt;

&lt;p&gt;The system can identify states such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Positive&lt;/li&gt;
&lt;li&gt;Neutral&lt;/li&gt;
&lt;li&gt;Frustrated&lt;/li&gt;
&lt;li&gt;Angry&lt;/li&gt;
&lt;li&gt;Negative&lt;/li&gt;
&lt;li&gt;Urgent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Urgency&lt;/p&gt;

&lt;p&gt;Messages are categorized into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Low&lt;/li&gt;
&lt;li&gt;Medium&lt;/li&gt;
&lt;li&gt;High&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This information helps the support workflow understand not just what the customer is asking, but also the context surrounding the request.&lt;/p&gt;

&lt;p&gt;When AI Should Stop and Ask for a Human&lt;/p&gt;

&lt;p&gt;One of the important design decisions in ResolveIQ is that the AI isn't expected to solve everything.&lt;/p&gt;

&lt;p&gt;Some situations should be escalated.&lt;/p&gt;

&lt;p&gt;A support ticket can be created when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The issue has high urgency.&lt;/li&gt;
&lt;li&gt;The customer is angry.&lt;/li&gt;
&lt;li&gt;The customer explicitly asks for a human agent.&lt;/li&gt;
&lt;li&gt;Relevant knowledge coverage is missing.&lt;/li&gt;
&lt;li&gt;The same issue remains unresolved after repeated attempts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tickets contain information such as:&lt;/p&gt;

&lt;p&gt;Ticket ID&lt;br&gt;
Customer&lt;br&gt;
Issue&lt;br&gt;
Priority&lt;br&gt;
Status&lt;br&gt;
Reason&lt;/p&gt;

&lt;p&gt;Possible statuses include:&lt;/p&gt;

&lt;p&gt;open&lt;br&gt;
in_progress&lt;br&gt;
resolved&lt;br&gt;
closed&lt;/p&gt;

&lt;p&gt;This creates a complete workflow from AI conversation to human intervention.&lt;/p&gt;

&lt;p&gt;MySQL vs Hindsight&lt;/p&gt;

&lt;p&gt;One of the important architectural decisions was keeping operational data separate from AI memory.&lt;/p&gt;

&lt;p&gt;MySQL&lt;/p&gt;

&lt;p&gt;MySQL stores structured application information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Customers&lt;/li&gt;
&lt;li&gt;Conversations&lt;/li&gt;
&lt;li&gt;Messages&lt;/li&gt;
&lt;li&gt;Tickets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hindsight&lt;/p&gt;

&lt;p&gt;Hindsight stores useful AI context that can be recalled later:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Previous customer problems&lt;/li&gt;
&lt;li&gt;Previous troubleshooting&lt;/li&gt;
&lt;li&gt;Customer preferences/context&lt;/li&gt;
&lt;li&gt;Unresolved issues&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In short:&lt;/p&gt;

&lt;p&gt;MySQL&lt;br&gt;
= Application Data&lt;/p&gt;

&lt;p&gt;Hindsight&lt;br&gt;
= AI Memory&lt;/p&gt;

&lt;p&gt;This separation makes the purpose of Hindsight much clearer in the overall architecture.&lt;/p&gt;

&lt;p&gt;Technology Stack&lt;/p&gt;

&lt;p&gt;ResolveIQ is built using a relatively lightweight stack.&lt;/p&gt;

&lt;p&gt;Frontend&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTML&lt;/li&gt;
&lt;li&gt;CSS&lt;/li&gt;
&lt;li&gt;JavaScript&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Backend&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;Flask&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Groq&lt;/li&gt;
&lt;li&gt;"openai/gpt-oss-120b"&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Hindsight&lt;/li&gt;
&lt;li&gt;Hindsight Client&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Database&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MySQL 8.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Knowledge Retrieval&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;scikit-learn&lt;/li&gt;
&lt;li&gt;TF-IDF&lt;/li&gt;
&lt;li&gt;Cosine similarity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additional Python packages include "python-dotenv" and "mysql-connector-python".&lt;/p&gt;

&lt;p&gt;The User Interface&lt;/p&gt;

&lt;p&gt;The interface is designed around three major areas:&lt;/p&gt;

&lt;p&gt;┌────────────────┬───────────────────────┬───────────────────┐&lt;br&gt;
│ CUSTOMER       │ AI SUPPORT CHAT       │ AI MEMORY         │&lt;br&gt;
│ CONTEXT        │                       │ + KNOWLEDGE       │&lt;br&gt;
│                │                       │                   │&lt;br&gt;
│ Profile        │ Messages             │ Hindsight         │&lt;br&gt;
│ Tickets        │ AI responses          │ memories          │&lt;br&gt;
│ Intent         │ Input box             │ Company KB        │&lt;br&gt;
│ Sentiment      │                       │ Escalation        │&lt;br&gt;
│ Urgency        │                       │                   │&lt;br&gt;
│ Summary        │                       │                   │&lt;br&gt;
└────────────────┴───────────────────────┴───────────────────┘&lt;/p&gt;

&lt;p&gt;The goal is to make the memory component visible rather than hiding it behind the chatbot.&lt;/p&gt;

&lt;p&gt;The visual direction focuses on a premium enterprise SaaS experience rather than a traditional college-project dashboard.&lt;/p&gt;

&lt;p&gt;The most important visual story is:&lt;/p&gt;

&lt;p&gt;MEMORY&lt;br&gt;
   +&lt;br&gt;
KNOWLEDGE&lt;br&gt;
   +&lt;br&gt;
ACTION&lt;/p&gt;

&lt;p&gt;Our Demo Scenario&lt;/p&gt;

&lt;p&gt;For the main demonstration, we use a customer named Rahul Mehta.&lt;/p&gt;

&lt;p&gt;The key interaction is:&lt;/p&gt;

&lt;p&gt;«“I am having the payment problem again.”»&lt;/p&gt;

&lt;p&gt;Instead of treating this as a completely new conversation, ResolveIQ retrieves the relevant previous context.&lt;/p&gt;

&lt;p&gt;During the demonstration, the interface can show:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recalled Hindsight memories&lt;/li&gt;
&lt;li&gt;Relevant company knowledge&lt;/li&gt;
&lt;li&gt;Personalized AI response&lt;/li&gt;
&lt;li&gt;Detected intent&lt;/li&gt;
&lt;li&gt;Sentiment&lt;/li&gt;
&lt;li&gt;Urgency&lt;/li&gt;
&lt;li&gt;Human escalation when necessary&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes the value of persistent AI memory immediately visible.&lt;/p&gt;

&lt;p&gt;Development Journey&lt;/p&gt;

&lt;p&gt;ResolveIQ was developed in multiple phases:&lt;/p&gt;

&lt;p&gt;Phase 1  → Flask Setup&lt;br&gt;
Phase 2  → Hindsight Integration&lt;br&gt;
Phase 3  → Groq Integration&lt;br&gt;
Phase 4  → AI Support Agent + Memory Loop&lt;br&gt;
Phase 5  → MySQL Integration&lt;br&gt;
Phase 6  → Multi-turn Conversations&lt;br&gt;
Phase 7  → Knowledge Base / RAG&lt;br&gt;
Phase 8  → Intent + Sentiment + Urgency&lt;br&gt;
Phase 9  → Ticket Creation + Escalation&lt;br&gt;
Phase 10 → Dashboard + Memory + Summaries + Integration&lt;/p&gt;

&lt;p&gt;The project handover reports that the Phase 10 test suite passed, including tests for Flask health, MySQL, Hindsight, Groq configuration, memory retrieval, knowledge search, AI analysis, ticket APIs, escalation, multi-turn memory, conversation history, and summaries.&lt;/p&gt;

&lt;p&gt;What We Learned&lt;/p&gt;

&lt;p&gt;Building ResolveIQ taught us that adding an LLM to a support application is only one part of building an AI agent.&lt;/p&gt;

&lt;p&gt;A useful support agent needs several layers working together:&lt;/p&gt;

&lt;p&gt;LLM&lt;br&gt;
 ↓&lt;br&gt;
Memory&lt;br&gt;
 ↓&lt;br&gt;
Knowledge&lt;br&gt;
 ↓&lt;br&gt;
Analysis&lt;br&gt;
 ↓&lt;br&gt;
Action&lt;/p&gt;

&lt;p&gt;The memory layer becomes particularly important when conversations span multiple sessions.&lt;/p&gt;

&lt;p&gt;Without memory:&lt;/p&gt;

&lt;p&gt;«“Tell me your problem.”»&lt;/p&gt;

&lt;p&gt;With memory:&lt;/p&gt;

&lt;p&gt;«“I remember that you previously experienced a UPI payment failure and the earlier troubleshooting didn't resolve it.”»&lt;/p&gt;

&lt;p&gt;That difference is what makes the interaction feel more continuous and personalized.&lt;/p&gt;

&lt;p&gt;What's Next?&lt;/p&gt;

&lt;p&gt;The next development priorities are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Finish the premium frontend redesign.&lt;/li&gt;
&lt;li&gt;Make Hindsight memory visually obvious.&lt;/li&gt;
&lt;li&gt;Make the demonstration easy to understand.&lt;/li&gt;
&lt;li&gt;Remove unnecessary developer/debug information.&lt;/li&gt;
&lt;li&gt;Test the complete workflow again.&lt;/li&gt;
&lt;li&gt;Prepare the 60-second hackathon demonstration.&lt;/li&gt;
&lt;li&gt;Prepare final project documentation.&lt;/li&gt;
&lt;li&gt;Clearly explain why Hindsight is necessary.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is also an important deployment consideration: the development setup currently uses local MySQL and Hindsight services, so these services need an appropriate deployment strategy before the application is publicly deployed.&lt;/p&gt;

&lt;p&gt;Final Thought&lt;/p&gt;

&lt;p&gt;ResolveIQ isn't just another chatbot.&lt;/p&gt;

&lt;p&gt;The idea is to create a support agent that can remember the customer, understand the situation, use company knowledge, and know when to involve a human.&lt;/p&gt;

&lt;p&gt;The central concept can be summarized in one line:&lt;/p&gt;

&lt;p&gt;«A normal chatbot forgets. ResolveIQ remembers.»&lt;/p&gt;

&lt;p&gt;And that is the core of our project:&lt;/p&gt;

&lt;p&gt;CHAT&lt;br&gt;
 +&lt;br&gt;
MEMORY&lt;br&gt;
 +&lt;br&gt;
KNOWLEDGE&lt;br&gt;
 +&lt;br&gt;
ANALYSIS&lt;br&gt;
 +&lt;br&gt;
ESCALATION&lt;/p&gt;

&lt;p&gt;Together, these components turn a simple AI chat interface into a more complete customer-support workflow.&lt;/p&gt;

&lt;p&gt;ResolveIQ.AI — AI Customer Support That Remembers.&lt;/p&gt;

</description>
      <category>agents</category>
      <category>ai</category>
      <category>softwaredevelopment</category>
    </item>
  </channel>
</rss>
