{"slug": "i-built-an-ai-agent-that-remembers-why-a-client-changed-their-deadline", "title": "I Built an AI Agent That Remembers Why a Client Changed Their Deadline", "summary": "A developer built RecallMeet, an AI relationship-memory agent that retains meeting context in the Hindsight memory layer and recalls it to prepare for future client interactions. The system, built with Python and FastAPI, stores meeting notes via a retain call keyed to a bank_id and retrieves relevant context with a recall query, so agents can explain changes such as a client's delivery timeline slipping from five to six months due to added security work. The workflow follows a Retain → Recall → Prepare pattern.", "body_md": "Most AI agents are good at answering questions about what they can see right now.\n\nThe harder problem is remembering what happened before.\n\nImagine having a client meeting today and discussing their budget, security concerns, delivery timeline, and previous commitments. A week later, another meeting happens. If the AI cannot remember the previous conversation, the same questions get asked again and important context can disappear.\n\nThat was the problem I wanted to solve with RecallMeet.\n\nRecallMeet is an AI relationship-memory agent built to remember important meeting context and use it to prepare for future interactions.\n\nIts basic workflow is:\n\n**Retain → Recall → Prepare**\n\nConsider a client called **TechNova Ltd**.\n\nDuring an earlier meeting, we recorded:\n\nLater, additional security work changed the expected delivery time from **5 months to 6 months**.\n\nA normal chatbot does not automatically know why that change happened unless the previous information is provided again.\n\nThat creates a simple but important problem:\n\nThe information exists, but the agent does not have useful long-term memory of the relationship.\n\nI wanted RecallMeet to solve that.\n\nA typical meeting assistant might see only the current meeting:\n\n```\ntext\nCurrent meeting:\nThe client wants the project delivered in 6 months.\nThe agent knows the new timeline, but not necessarily:\nWhy it changed\nWhat the original timeline was\nWhat security concern caused the additional work\nWhat budget was previously discussed\nThe user would need to manually search old notes or provide the previous context again.\nAfter adding Hindsight\nRecallMeet can retrieve related information from previous interactions:\nTechNova previously had a 5-month delivery timeline.\nThe project budget was ₹8 lakh.\nThe client raised security concerns.\nAdditional security work involving encryption and\ntwo-factor authentication extended the expected timeline\nto 6 months.\nNow the next meeting has context instead of starting from zero.\nWhy I Used Hindsight\nFor the memory layer, I integrated Hindsight⁠�.\nHindsight is designed for long-term memory for AI agents. Instead of treating every conversation as an isolated request, it provides a way for an agent to retain information and recall relevant memories later.\nI used the Hindsight documentation⁠� while building the integration.\nThe architecture of RecallMeet is intentionally simple:\nMeeting\n   ↓\nRetain\n   ↓\nHindsight Memory\n   ↓\nRecall\n   ↓\nRelevant Client Context\n   ↓\nPrepare for Next Meeting\nHow RecallMeet Stores Memory\nThe backend is written in Python using FastAPI.\nWhen a meeting is remembered, RecallMeet sends the meeting information to Hindsight.\nA simplified version of the code looks like this:\nclient.retain(\n    bank_id=BANK_ID,\n    content=meeting.notes,\n    context=f\"Meeting with {meeting.client_name}\"\n)\nThe bank_id identifies the memory space used by RecallMeet, while the context helps associate the memory with the relevant client.\nLater, when the user wants to remember something, the application performs a recall operation:\nresponse = client.recall(\n    bank_id=BANK_ID,\n    query=request.query\n)\nThe important part is that the agent does not need the entire meeting history placed into every request.\nInstead, it can retrieve relevant information when it is needed.\nRetain → Recall → Prepare\nI designed RecallMeet around three simple actions.\n1. Retain\nAfter a meeting, important information is stored in Hindsight.\nFor example:\nClient: TechNova Ltd\nBudget: ₹8 lakh\nTimeline: 5 months\nConcern: Security\nRequirements: Encryption + 2FA\n2. Recall\nBefore another meeting, the user can ask something like:\nWhat were TechNova's previous concerns?\nThe system retrieves relevant memories.\nIt can also answer questions about previous timelines, budgets, requirements, and commitments.\n3. Prepare\nThe recalled information can then be turned into preparation points for the next meeting.\nFor example:\nNext Meeting Focus\n\n• Review previous commitments\n• Confirm current security requirements\n• Discuss the updated 6-month timeline\n• Confirm budget\n• Review unresolved concerns\n• Agree on next steps\nThis makes the memory useful rather than simply storing old information.\nKeeping Different Clients Separate\nOne issue I encountered during development was that semantic memory retrieval can sometimes return more context than I actually wanted.\nFor example, RecallMeet can contain information about both TechNova and another client such as Acme Corp.\nIf I simply asked a broad question, unrelated memories could potentially appear in the result.\nSo I added client-specific filtering and deduplication in the application layer.\nFor example, when asking about TechNova, the application checks the retrieved memories and keeps the relevant TechNova context instead of displaying unrelated client information.\nThis was an important lesson for me:\nMemory retrieval is not just about storing information. It is also about controlling which memories are useful in a particular context.\nThe Technology Behind RecallMeet\nThe current prototype uses:\nPython for the backend\nFastAPI for API endpoints\nHTML, CSS and JavaScript for the frontend\nHindsight for long-term agent memory\nEnvironment variables for configuration and API credentials\nThe application provides four main actions:\nRemember a Meeting\nRecall Past Context\nPrepare Me for the Next Meeting\nMeeting History\nThe goal was to keep the interface simple while letting the memory system handle the more complex part.\nWhat I Learned\nOne of the biggest lessons from building RecallMeet was that adding memory to an AI agent is more than simply connecting a database.\nA useful memory system needs to answer three questions:\nWhat should be remembered?\nNot every piece of conversation needs to become important long-term context.\nWhat should be recalled?\nThe system needs to retrieve information relevant to the current interaction.\nHow should the memory be used?\nRetrieved information should actually help the user make the next interaction more productive.\nI also learned that retrieval can produce repetitive or overly broad context. Adding client filtering and deduplication helped make the results more useful for my specific application.\nThis is still a prototype, so there are several areas I would improve before considering it production-ready, including stronger authentication, more structured meeting extraction, better memory management, and more advanced preparation based on previous commitments.\nWhat Comes Next\nThe next version of RecallMeet could go beyond simply recalling meeting information.\nFor example, it could automatically identify:\nUnfinished commitments\nFollow-up actions\nChanges in requirements\nImportant client preferences\nUpcoming deadlines\nDecisions made across multiple meetings\nThe agent could then generate a concise briefing before every meeting.\nThat would turn long-term memory into an active part of the workflow rather than just a place to store old conversations.\nFinal Thoughts\nBuilding RecallMeet changed the way I think about AI agents.\nAn agent becomes much more useful when it can understand that today's interaction is connected to yesterday's conversation and tomorrow's task.\nFor me, the most interesting part was not simply getting an AI response.\nIt was being able to ask:\n“What happened before, and why does it matter now?”\nThat is the idea behind RecallMeet: an AI agent that remembers every interaction and prepares you for what comes next.\nIf you're interested in the memory layer I used, you can explore Hindsight on GitHub⁠�, its documentation⁠�, or learn more about agent memory from Vectorize⁠�.\n\n![ ](https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/whlj4pvykftole36qj0f.png)\n![ ](https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/jidargc9z8qcxqzd74h1.png)\n![ ](https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/o3smgdjvws811ji6mw2q.png)\n![ ](https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/3n845ce34pj91gqdpjto.png)\n![ ](https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/68xbih5fl07r4niiinmt.png)\n## Project\nGitHub:\nhttps://github.com/KothaVaruni/RecallMeet\n```\n\n", "url": "https://wpnews.pro/news/i-built-an-ai-agent-that-remembers-why-a-client-changed-their-deadline", "canonical_source": "https://dev.to/kothavaruni/i-built-an-ai-agent-that-remembers-why-a-client-changed-their-deadline-1pfe", "published_at": "2026-09-29 13:09:14+00:00", "updated_at": "2026-09-29 13:16:33.968932+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "artificial-intelligence", "developer-tools"], "entities": ["RecallMeet", "Hindsight", "FastAPI", "Python", "TechNova Ltd"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-built-an-ai-agent-that-remembers-why-a-client-changed-their-deadline", "markdown": "https://wpnews.pro/news/i-built-an-ai-agent-that-remembers-why-a-client-changed-their-deadline.md", "text": "https://wpnews.pro/news/i-built-an-ai-agent-that-remembers-why-a-client-changed-their-deadline.txt", "jsonld": "https://wpnews.pro/news/i-built-an-ai-agent-that-remembers-why-a-client-changed-their-deadline.jsonld"}}