Generative AI Customer Service Agent Assist with RAG Implementation

newday · Finance · 2024 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: customer-service agent assist

NewDay needed to help contact-center agents answer customer questions faster and more accurately across nearly 200 knowledge articles, while proving that a generative AI assistant could add business value despite legacy infrastructure, limited resources, cost constraints, and strict response-time requirements.

Constraints:

Architecture

NewDay built NewAssist as a RAG-based customer-service agent-assist application. A Streamlit UI on Fargate with Cognito and Microsoft Entra ID SSO lets agents ask questions and give feedback. A knowledge-base processing component retrieves articles from a third-party CMS, parses widget-structured JSON, chunks content, creates embeddings, and stores them in OpenSearch Serverless. A suggestion-generation component retrieves relevant chunks and sends them to Anthropic Claude 3 Haiku through Amazon Bedrock. Feedback is logged to Snowflake, CloudWatch logs service requests, weekly business reviews drive experiments, and new versions are evaluated offline against a golden dataset before production deployment.

Diagram confidence: explicit (topology described by the source).

flowchart LR
  customer_service_agent["Customer service agent"] --> streamlit_assistant_ui["Streamlit assistant UI"]
  cognito_and_entra_sso["Cognito and Entra SSO"] --> streamlit_assistant_ui
  third_party_knowledge_base["Third-party knowledge base"] --> knowledge_base_processing["Knowledge base processing"]
  knowledge_base_processing --> opensearch_serverless_vector_database["OpenSearch Serverless vector database"]
  opensearch_serverless_vector_database --> suggestion_generation_component["Suggestion generation component"]
  streamlit_assistant_ui --> suggestion_generation_component
  suggestion_generation_component --> amazon_bedrock["Amazon Bedrock"]
  amazon_bedrock --> anthropic_claude_3_haiku["Anthropic Claude 3 Haiku"]
  anthropic_claude_3_haiku --> suggestion_generation_component
  suggestion_generation_component --> streamlit_assistant_ui
  streamlit_assistant_ui --> snowflake_feedback_log["Snowflake feedback log"]
  snowflake_feedback_log --> business_expert_review["Business expert review"]
  business_expert_review --> experiment_loop["Experiment loop"]
  offline_evaluation_dataset["Offline evaluation dataset"] --> experiment_loop
  experiment_loop --> knowledge_base_processing
  experiment_loop --> suggestion_generation_component
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Customer service agent NewDay contact-center user who asks questions, applies suggested answers, and provides feedback. Streamlit assistant UI
Streamlit assistant UI Agent-facing interface for asking questions, viewing suggestions, and submitting thumbs-up/down feedback and comments. Cognito and Entra SSO, Suggestion generation component, Snowflake feedback log
Cognito and Entra SSO Authentication layer for customer-service agents using Amazon Cognito with Microsoft Entra ID integration. Streamlit assistant UI
Third-party knowledge base Content management system containing expert-authored contact-center knowledge articles as widget-structured JSON. Knowledge base processing
Knowledge base processing Retrieves, parses, chunks, embeds, and stores knowledge-article content using custom widget-aware logic. OpenSearch Serverless vector database
OpenSearch Serverless vector database Stores vector embeddings for retrieval over processed knowledge-article chunks. Suggestion generation component
Suggestion generation component Retrieves relevant chunks and sends them with the question to the LLM for answer generation. Amazon Bedrock, Streamlit assistant UI
Amazon Bedrock Managed access layer for Anthropic Claude 3 Haiku. Anthropic Claude 3 Haiku
Anthropic Claude 3 Haiku Cost-effective and latency-suitable model used to generate customer-service suggestions. Suggestion generation component
Snowflake feedback log Stores questions, answers, and feedback for dashboards, accuracy tracking, and weekly review. Business expert review
Business expert review Weekly review process where experts inspect bad feedback and engineers turn root causes into experiments. Experiment loop
Offline evaluation dataset Golden set of questions and correct answers used to evaluate new versions before production deployment. Experiment loop
Experiment loop Build-Measure-Learn process that tests retrieval, parsing, prompt, and user-behavior improvements before rollout. Knowledge base processing, Suggestion generation component

Data flow

Agents ask questions in the NewAssist UI and can rate answers with thumbs up/down plus comments. Knowledge articles are pulled from a third-party content management system, parsed with custom widget-aware logic, chunked, embedded, and stored in OpenSearch Serverless. At query time, the suggestion-generation component retrieves relevant chunks and passes them to Claude 3 Haiku through Amazon Bedrock. Questions, answers, and feedback are logged into Snowflake for dashboards and weekly expert review; pre-production versions are checked against an evaluation dataset before deployment.

3 supporting quotes
“Users can log in, ask questions, give feedback to answers in the form of thumbs up and thumbs down, and optionally provide a comment”article, stated
“articles are retrieved by using APIs from the third-party knowledge base and chunked with a defined chunking strategy.”article, stated
“Questions on the UI are forwarded to the suggestion generation component, which retrieves the most relevant chunks and passess these chunks to the large language model”article, stated

Why this architecture

NewDay narrowed the first release from a voice assistant to a chatbot POC so the team could validate RAG against the existing knowledge base and build a reusable foundation. Serverless AWS services reduced infrastructure management and kept monthly running cost low, Claude 3 Haiku met the 5-second response-time requirement at acceptable cost, and a feedback/evaluation loop let the team improve accuracy from early sub-60% results to over 90%.

3 supporting quotes
“the team made a strategic pivot. They scaled back to a chatbot solution, concentrating on standing up a proof of concept”article, stated
“This approach not only reduced costs (with running cost kept under $400 per month), but also made sure the system could scale in response to real-time demand.”article, stated
“NewDay has a response time requirement of a maximum of 5 seconds, which Anthropic’s Claude 3 Haiku satisfies.”article, stated

Models used: Anthropic Claude 3 Haiku · Amazon Bedrock

Scale

Alternatives considered (roads not taken)

Start with a fully fledged voice assistant

Rejected because: The team judged the voice-assistant ambition too large for the early constraints and pivoted to a chatbot POC to validate the knowledge base foundation.

“their ambitions of a fully fledged voice assistant were too ambitious given the challenges”article, stated
“They scaled back to a chatbot solution, concentrating on standing up a proof of concept”article, stated

Use generic PDF parsing for knowledge articles

Rejected because: PyPDF parsing ignored the article widget structure and left accuracy around 60%, while custom widget-aware parsing lifted accuracy to 73%.

“Use PyPDF to parse the articles.”article, stated
“the solution’s accuracy increased from 60% to 73%.”article, stated

Use newer more performant models by default

Rejected because: NewDay kept Claude 3 Haiku because it was cost-effective, produced satisfying results, and met the 5-second response-time requirement.

“Anthropic’s Claude 3 Haiku is still used at the time of writing, even though more performant models have been released.”article, stated
“it’s the most cost-effective model accessible through Amazon Bedrock that provides satisfying results”article, stated

Assume users ask questions like the technical team expects

Rejected because: Real agents used internal acronyms such as dd and cst, which initially caused accuracy to drop.

“Agents used NewAssist differently from what the NewDay technical team expected: they used various acronyms in their questions to NewAssist.”article, stated
“NewAssist’s accuracy dropped to 70% when agents started using it.”article, stated

Patterns

rag-retrieval (agent-assist grounding)

NewAssist retrieves relevant knowledge-article chunks from OpenSearch Serverless and passes them to Claude 3 Haiku as context for customer-service suggestions.

“NewAssist is implemented as a Retrieval Augmented Generation (RAG) solution.”article, stated
“retrieves the most relevant chunks and passess these chunks to the large language model (LLM) for generating suggestions based on the context.”article, stated

data-quality-loop (knowledge-base processing)

NewDay improved accuracy by studying the structure of its knowledge articles, replacing generic PDF parsing with custom widget-aware parsing, and improving content gaps found in feedback.

“The one experiment that had the biggest impact on the accuracy of NewAssist, increasing it by 20%, was replacing the general-purpose data parser”article, stated
“The NewAssist team identified several gaps in the knowledge base, which they solved with new and improved content.”article, stated

eval-driven-development (iterative release gating)

NewDay used Build-Measure-Learn cycles, a golden evaluation dataset, pre-production thresholds, weekly review of bad feedback, and experiment loops to improve accuracy before rollout.

“The team followed the Improvement Kata methodology to implement rapid Build-Measure-Learn cycles.”article, stated
“If the version’s accuracy surpasses a specified threshold, then it can be deployed in production.”article, stated

observability-tracing (feedback and monitoring)

NewAssist logs questions, answers, feedback, and service requests into Snowflake and CloudWatch so business experts and AI engineers can diagnose weak responses.

“Questions and answers with feedback are logged into Snowflake.”article, stated
“Every week, business experts review the answers with bad feedback, and AI engineers translate them into experiments”article, stated

human-in-the-loop-gate (expert review and pilot rollout)

Experienced agents and weekly business experts review bad answers and guide experiments before broader deployment.

“NewDay selected 10 experienced agents because they needed to identify where the solution gave an incorrect response.”article, stated
“Negative responses were reviewed and root cause analysis conducted.”article, stated

cost-aware-routing (model selection)

NewDay stayed with Claude 3 Haiku because it balanced acceptable answer quality, cost, and the 5-second latency requirement.

“it’s the most cost-effective model accessible through Amazon Bedrock that provides satisfying results”article, stated
“NewDay has a response time requirement of a maximum of 5 seconds, which Anthropic’s Claude 3 Haiku satisfies.”article, stated

Tradeoffs

Pivot from voice assistant to chatbot POC.

Chose A focused chatbot proof of concept over A fully fledged voice assistant as the first implementation.

Rationale: The team needed to validate the knowledge-management foundation and prove business value before attempting the larger voice-assistant ambition.

“their ambitions of a fully fledged voice assistant were too ambitious given the challenges”article, stated
“this task was crucial in setting the right foundation for a solid long-term strategy.”article, stated

Use serverless infrastructure.

Chose Bedrock, Fargate, Lambda, API Gateway, and OpenSearch Serverless over Managing bespoke infrastructure for experimentation.

Rationale: Serverless reduced cost, supported real-time demand scaling, and let the small team focus on experiment validation instead of infrastructure operations.

“This approach not only reduced costs (with running cost kept under $400 per month), but also made sure the system could scale in response to real-time demand.”article, stated
“allowed the developer of the team to focus only on activities that would validate the result of the experiments without worrying about managing infrastructure.”article, stated

Invest in bespoke data parsing.

Chose Widget-aware JSON parsing and polished content formatting over Manual PDF export plus generic PyPDF parsing.

Rationale: The custom parser took longer but raised accuracy from 60% to 73% without changing the AI component.

“It took longer than simply parsing with PyPDF, but the results were positive.”article, stated
“without touching the AI component, the solution’s accuracy increased from 60% to 73%.”article, stated

Keep Claude 3 Haiku despite newer models.

Chose Claude 3 Haiku through Amazon Bedrock over Switching to newer higher-performing models.

Rationale: Claude 3 Haiku remained the most cost-effective Bedrock model that met NewDay's result quality and 5-second latency requirement.

“even though more performant models have been released. There are two reasons for this:”article, stated
“first, it’s the most cost-effective model accessible through Amazon Bedrock that provides satisfying results; second, NewDay has a response time requirement”article, stated

Validate with experienced agents before broader rollout.

Chose A 10-agent pilot with negative-feedback review over Immediate broad rollout after reaching the 80% POC milestone.

Rationale: Experienced agents were needed to identify incorrect responses and reveal real usage patterns before productionization.

“they obtained approval to expand experimentation to 10 customer service agents after just 3 months.”article, stated
“NewDay selected 10 experienced agents because they needed to identify where the solution gave an incorrect response.”article, stated

Gotchas (what bit them)

A voice assistant was too ambitious for the first delivery step.

Root cause: The team faced limited resources, competing priorities, legacy infrastructure, and the need to prove business value.

Resolution: NewDay pivoted to a chatbot proof of concept focused on validating the knowledge-management foundation.

“Lack of infrastructure – The existing legacy systems were not conducive to rapid experimentation”article, stated
“They scaled back to a chatbot solution, concentrating on standing up a proof of concept”article, stated

Generic document parsing left accuracy too low.

Root cause: PyPDF parsing ignored the widget-specific structure of NewDay's knowledge articles in the third-party CMS.

Resolution: The team studied each widget schema and wrote bespoke parsing logic to extract and polish relevant content.

“With this approach, the solution was performing at around 60% accuracy.”article, stated
“the team studied each single widget schema and created a bespoke parsing logic that extracts the relevant content and formats it in a polished way.”article, stated

Real agents used abbreviations the model did not understand.

Root cause: The technical team did not initially account for internal shorthand such as dd for direct debit and cst for customer.

Resolution: NewDay statically injected acronyms and abbreviations into the LLM prompt, slowly recovering accuracy above 80%.

“How do I set a dd for a cst?”article, stated
“The solution NewDay adopted was to statically inject the acronyms and abbreviations in the LLM prompt”article, stated

Pilot users exposed failure modes the lab dataset missed.

Root cause: Agents asked questions differently and revealed knowledge-base gaps only after the tool was used in real workflows.

Resolution: NewDay expanded to experienced agents, reviewed negative responses, fixed knowledge-base gaps, trained on internal language, and coached the pilot team.

“put a product in the hands of the final users to validate the assumptions.”article, stated
“identified several gaps in the knowledge base, which they solved with new and improved content.”article, stated

The model choice had to satisfy cost and latency, not only raw capability.

Root cause: More performant models became available, but the use case required a maximum 5-second response time and acceptable running cost.

Resolution: NewDay continued using Claude 3 Haiku because it delivered satisfying results within the latency and cost constraints.

“Anthropic’s Claude 3 Haiku is still used at the time of writing, even though more performant models have been released.”article, stated
“NewDay has a response time requirement of a maximum of 5 seconds, which Anthropic’s Claude 3 Haiku satisfies.”article, stated

Evaluation

NewDay used a golden dataset of more than 100 question-answer pairs, rapid Build-Measure-Learn experiment loops, offline pre-production evaluation thresholds, production feedback logging, weekly expert review of bad answers, and pilot-agent testing to measure and improve accuracy.

Metrics: target 80% accuracy · early accuracy below 60% · accuracy from 60% to 73% after custom parsing · accuracy over 80% after experiment loops · accuracy drop to 70% when real agents used acronyms · accuracy over 90% after scaling improvements · answer retrieval time from 90 seconds to 4 seconds · running cost under $400 per month · maximum response time of 5 seconds

3 supporting quotes
“Early iterations saw accuracy below 60%, but through rigorous testing and smart data strategies, they boosted performance to over 80%”article, stated
“NewAssist’s accuracy dropped to 70% when agents started using it.”article, stated
“By doing this, the NewAssist Team improved the accuracy to over 90% and gained approval from NewDay’s executive team to productionize the solution.”article, stated

Outcomes

The case moved from a hackathon POC to production rollout in a 2.5-million-call-per-year contact center. NewDay reports a 10-agent pilot, over 150 agents in rollout, and eventual expansion across Customer Operations.

3 supporting quotes
“NewAssist won the hackathon event by showcasing the potential generative AI could deliver on speed of call resolution.”article, stated
“gained approval from NewDay’s executive team to productionize the solution.”article, stated
“Previously, it would take them on average 90 seconds to retrieve an answer; the solution now retrieves an answer in 4 seconds.”article, stated