{ "cells": [ { "cell_type": "markdown", "id": "354ce590-0831-400f-93eb-2240cfd5a22f", "metadata": {}, "source": [ "# Lab 5: Building a Customer-Facing Frontend Application\n", "\n", "## Overview\n", "\n", "In the previous labs, we've built a comprehensive Customer Support Agent with memory, shared tools, and production-grade deployment. With them we show cased the capabilities of AgentCore services to move an agentic use case from prototype to production. You can now invoke your agent runtime from any application. On real world applications, customers expect an user interface to be available. Now it's time to create a user-friendly frontend that customers can actually use to interact with our agent.\n", "\n", "**Workshop Journey:**\n", "- **Lab 1 (Done)**: Create Agent Prototype - Built a functional customer support agent\n", "- **Lab 2 (Done)**: Enhance with Memory - Added conversation context and personalization\n", "- **Lab 3 (Done)**: Scale with Gateway & Identity - Shared tools across agents securely\n", "- **Lab 4 (Done)**: Deploy to Production - Used AgentCore Runtime with observability\n", "- **Lab 5 (Current)**: Build User Interface - Create a customer-facing application\n", "\n", "In this lab, we'll create a **Streamlit-based web application** that provides customers with an intuitive chat interface to interact with our deployed Customer Support Agent. The frontend will include:\n", "\n", "- **Secure Authentication** - User login via Amazon Cognito\n", "- **Real-time Chat Interface** - Streamlit-powered conversational UI\n", "- **Streaming Responses** - Live response streaming for better user experience\n", "- **Session Management** - Persistent conversations with memory\n", "- **Response Timing** - Performance metrics for transparency\n", "\n", "### Architecture for Lab 5\n", "\n", "Our frontend application connects to the AgentCore Runtime endpoint we deployed in Lab 4, providing a complete end-to-end customer support solution:\n", "\n", "