Inspiration

I was inspired to build this app with a memory after attending the "Mastering AI Agents with Strands SDK and Amazon Bedrock AgentCore" workshop on September 27. I've built several projects using Amazon Q previously, so this time I wanted to try using Kiro. My three passions are AWS, AI, and F1 racing, so I decided to build something that would include all three.

What it does

The F1 AI Agent is a comprehensive demonstration of all six AWS Bedrock AgentCore components working together to create an intelligent, personalized Formula 1 assistant. This production-ready application showcases the full power of Amazon's AgentCore platform through a racing-focused chatbot experience.

Core Functionality:

  • Intelligent F1 Conversations: Users can ask questions about Formula 1, get race results, driver standings, team information, and racing insights powered by real-time 2025 F1 data
  • Personalized Experience: The agent remembers previous conversations and greets returning users with personalized messages like "Welcome back, Monty! Last time we discussed championship standings..."
  • Real-time Data Access: Integrates with a comprehensive F1 knowledge base containing current 2025 season data, including driver standings (Oscar Piastri leading with 324 points), team rankings, and race results
  • Secure Authentication: OAuth2 login flow using AWS Cognito with multiple test users (Olivia, Angela, Monty)
  • Memory Persistence: Long-term conversation memory that extracts and remembers user preferences, favorite drivers/teams, and conversation topics across sessions

AgentCore Components Demonstrated:

  1. Runtime: Serverless agent deployment with Strands Agent framework and Claude 3.5 Sonnet model
  2. Memory: Advanced memory system with three extraction strategies (summarization, semantic, user preferences) lasting 365 days
  3. Knowledge Base: Real-time 2025 F1 data retrieval with graceful throttling mitigation and fallback responses
  4. Identity: Complete OAuth2 authentication flow with Cognito user pool and access token validation

Technical Architecture:

  • Frontend: Next.js application with F1-branded interface featuring quick action buttons for "Latest Race Results," "Driver Standings," "Team Standings," and "Previous Conversation"
  • Backend: Python-based agent using Bedrock AgentCore SDK with comprehensive error handling and logging
  • Infrastructure: Fully deployed on AWS with enterprise-grade reliability and monitoring via OpenTelemetry

User Experience: The application provides a seamless F1 fan experience where users can log in, receive personalized greetings based on their conversation history, quickly access current F1 information, and have natural conversations about racing that the agent remembers across sessions. The system gracefully handles high load scenarios with intelligent fallback responses when rate limits are encountered.

How we built it

100% Vibe coding. I did not write one line of code. I would coach and offer advise, but I did not do any coding. Amazon Q CLI and Claude Code struggled with a few things, so I would point Amazon Q CLI and Claude Code to AWS repo examples.

Challenges we ran into

The biggest challenge was Amazon Q and Claude Code forgetting critical information. I actual restarted the project from scratch three times. The other biggest challenge was getting the memory working.

Accomplishments that we're proud of

Gettting the long-term memory working was the biggest challenge. That took many hours to finally get working.

What we learned

Breaking the project into small chunks made it much easier to keep Amazon Q and Claude Code focused on the current tasks. Updated dating documentation after every completed task was helpful for session handoffs.

What's next for F1 AI Agent

  • Registration form for new users with email verifications
  • Remove the three persona users
  • Remove the sample prompts

Built With

Share this project:

Updates