Inspiration

Customers today demand instant and personalized service. Traditional customer support systems often struggle to keep up, leading to long wait times and frustrating experiences. We were inspired to create a solution that leverages the power of AI to provide seamless and efficient customer engagement, 24/7. EazyBank, a fictional but forward-thinking bank, provided the perfect context to explore this vision. We wanted to demonstrate how AI agents, working in concert, can revolutionize how banks interact with their customers.

What it does

AgentVerse is a multi-agent AI application designed to transform customer engagement for EazyBank. It allows customers to interact with a universe of specialized AI agents to get instant answers to their queries. AgentVerse can:

  • Provide real-time account status updates based on registered phone number.
  • Explain the reasons for account application rejections, drawing detailed information from bank policy documents.
  • Seamlessly transition complex or sensitive requests to a human agent, preserving context and conversation history.

Customers can ask the AI master agent about their account application status, at what stage it is [like approved or in-progress or rejected]. If rejected then why is it rejected. If approved, then find the account balance , attached credit cards, etc. And also if the user needs further assistance then forward to a human agent in queue.

How we built it

AgentVerse leverages a multi-agent architecture built on AWS Lambda and AWS Bedrock. Key components include:

  • Master Agent (Bedrock Agent): Orchestrates the interaction, using AWS Bedrock for natural language understanding and routing requests to specialized agents.
  • Specialized Agents:
    • account_status_agent (Lambda function [new-account-status-svc]): Retrieves account status and details from a DynamoDB table. Accessed via OpenAPI schema.
    • rejection_reason_agent: Accesses an OpenSearch vector database containing company policy documents to explain rejection reasons. The documents are stored in S3.
    • human_handoff_agent (Lambda function [publish-to-sqs-svc]): Pushes requests for human assistance, along with conversation history, to an SQS queue. Accessed via OpenAPI schema.
  • Backend Processing:
    • human-agent-request-tracker (Lambda function): Triggered by SQS, stores human agent requests in a DynamoDB table.
    • DynamoDB Streams: Captures changes to the DynamoDB table.
    • human-agent-notification-svc (Lambda function): Triggered by DynamoDB Streams, publishes human agent requests to an SNS topic.
  • Frontend: A Streamlit application deployed on an EC2 instance provides the user interface at https://eazybank.born2learn.xyz. It interacts with the Bedrock Agent via API calls.

Challenges we ran into

  • Integrating AWS Bedrock: Initially, understanding how to effectively use Bedrock's models for intent recognition and text generation presented a learning curve.
  • DynamoDB Streams and Eventual Consistency: Ensuring that the DynamoDB Streams events were processed in the correct order and handling potential eventual consistency issues required careful design.
  • OpenAPI Integration: Generating and integrating OpenAPI schemas with Lambda functions required meticulous attention to detail.
  • Vector Database Setup: Setting up and optimizing the OpenSearch vector database for efficient retrieval of policy documents was a complex task.
  • Latency: Optimizing the entire chain of Lambda functions and API calls to minimize latency was a constant challenge.

Accomplishments that we're proud of

  • End-to-End Multi-Agent System: Successfully building a complete multi-agent system that seamlessly handles customer inquiries from start to finish.
  • Bedrock Integration: Effectively leveraging AWS Bedrock for natural language understanding and generation, demonstrating the power of AI in customer engagement.
  • Decoupled Architecture: Creating a highly decoupled and scalable architecture using Lambda, SQS, DynamoDB Streams, and SNS.
  • Functional Demo: Deploying a fully functional demo on EC2 with a Streamlit interface, allowing users to experience the power of AgentVerse firsthand.
  • Real-time Updates: Providing real-time account status and human agent handoff.

What we learned

  • The power and flexibility of AWS Lambda for building serverless applications.
  • The importance of decoupling in complex systems.
  • How to effectively integrate AWS Bedrock with other AWS services.
  • The nuances of working with DynamoDB Streams and eventual consistency.
  • The value of a well-defined API and OpenAPI specifications.

What's next for AgentVerse: AI-Driven Customer Engagement

  • Improved Intent Recognition: Fine-tune the Bedrock models for even more accurate intent recognition.
  • Personalized Recommendations: Implement personalized recommendations for products and services based on customer history and preferences.
  • Enhanced Security: Implement more robust security measures to protect customer data.
  • Expanded Knowledge Base: Expand the knowledge base of the rejection_reason_agent to cover a wider range of topics.
  • Integration with other Banking Systems: Integrate with core banking systems to provide a more comprehensive view of customer accounts.

Built With

  • amazon-ec2
  • anthropic
  • aws-bedrock
  • dynamodb
  • iam
  • lambda
  • openapi
  • opensearch
  • python
  • s3
  • security-groups
  • sns
  • sqs
  • streamlit
Share this project:

Updates

Submission history