
Weekend Agent Challenge: AWS Cost Whisperer
A calm, conversational agent that answers the one question every AWS beginner is afraid to ask out loud — "will this cost me money?" — in plain English, powered by a single Lambda and Amazon Bedrock.
TL;DR / Key Takeaways
- One Lambda, whole app. A single AWS Lambda serves its own chat web page on
GETand answers questions onPOST. No S3, no API Gateway, no database, no CloudFront. - A personality that fits the job. The agent is deliberately calm and reassuring, because its users are nervous about surprise bills. It always surfaces the Free-Tier angle and never shows a raw error.
- Effectively free to run. Lambda (arm64/128 MB), its Function URL, and CloudWatch Logs stay inside the AWS Free Tier for this usage; Nova Micro text chat costs cents.
Introduction
Every AWS beginner knows the feeling. You follow a tutorial, you spin up a service, and then a small voice asks: is this going to show up on my card next month? The Billing console doesn't help — it's a wall of line items written for people who already understand the pricing model. So I built the thing I wished I'd had when I started: an agent you can just talk to about AWS cost.
This is my submission for the #agents challenge. The brief rewarded a small, delightful agent over a big clunky one, with real attention to the experience of using it. That matched my instinct exactly — the whole point of the Cost Whisperer is to make a scary topic feel safe.
Table of Contents
- What It Does and Who It's For
- Why I Built This
- How I Built It: Architecture & Challenges
- The AWS Services Used
- The Delightful Detail (and How I Know It Worked)
- What I Learned
- Proof It Works
- FAQ
- Conclusion
What It Does and Who It's For
The Cost Whisperer is a real-time chat agent. You open a web page, type a question — "Does an empty S3 bucket cost anything?", "Will a Lambda function charge me?", "Is the Free Tier really free?" — and it answers in a second or two, in plain, friendly language. Crucially, whenever money could be involved, it tells you whether the thing usually falls inside the Free Tier and what to watch out for.
It's for beginners: students, weekend builders, and anyone deploying their first project who wants reassurance before they click Deploy. It is not a billing dashboard and it doesn't pretend to be. It's the patient friend who knows AWS and talks you down from the ledge.
Why I Built This
I wanted maximum delight with minimum infrastructure. Most of my earlier weekend builds were scheduled agents — they wake up on a cron and email you. This time I wanted something interactive, something you use and feel. And I wanted the experience, not the service list, to be the star.
How I Built It: Architecture & Challenges
The architecture is almost suspiciously simple. One Lambda function, exposed through a Lambda Function URL, does everything:
1
2
Browser ──GET /──▶ Lambda ──serves──▶ chat UI (HTML)
Browser ──POST /─▶ Lambda ──InvokeModel──▶ Bedrock (Nova Micro) ──▶ friendly replyOn a
GET, the function returns a self-contained HTML page (the chat UI lives inside the Lambda as a string). On a POST, it reads the user's message, wraps it in a carefully written system prompt that defines the Whisperer's personality, calls Amazon Bedrock's Nova Micro model, and returns the reply as JSON. The front end renders it as a chat bubble.The biggest challenge was tone discipline. A general-purpose model will happily give you a jargon-filled essay. I spent most of my time on the system prompt: short paragraphs, no wall of text, always mention the Free-Tier angle, never invent exact dollar figures, and end on a calm reassurance. The second challenge was graceful failure — if Bedrock is briefly unreachable, the user must never see a stack trace. I wrapped the model call so that any failure returns a warm fallback that explicitly says nothing was charged.
The AWS Services Used
- AWS Lambda (Python 3.12, arm64, 128 MB) — serves the UI and runs the chat logic.
- Lambda Function URL — a public HTTPS endpoint, so I skip API Gateway entirely.
- Amazon Bedrock (Nova Micro) — the agent's brain and personality.
- Amazon CloudWatch Logs — function logs with retention capped at 14 days to keep cost near zero.
- AWS IAM — a least-privilege role that can only write logs and invoke the one model.
- AWS CloudFormation — the entire stack is one template, so deploy and teardown are each a single command.
The Delightful Detail (and How I Know It Worked)
The one detail I'm proudest of is the friendly first run. The moment you open the page, before you type anything, the agent greets you by name of role — "Hi there! I'm the Cost Whisperer. AWS billing can feel scary, so I keep it calm and plain." — and offers three one-tap starter questions. You are never staring at an empty box wondering what to ask.
How do I know it worked? Two signals. First, there is no empty state anywhere in the app — every screen, including the error path, has a warm human sentence on it. Second, I tested the failure case on purpose by pointing it at an unreachable model, and the UI stayed reassuring instead of breaking. When the worst-case path still feels kind, the experience is doing its job.
What I Learned
The headline lesson: the prompt is the product. The infrastructure here took an hour; the personality took the rest. Getting a model to be consistently brief, warm, and honest about uncertainty is real design work, not an afterthought. I also learned how far a single Lambda can stretch — serving its own front end from a Function URL removed an entire tier of services I assumed I'd need.
Proof It Works
Open the
WhispererUrl from the CloudFormation outputs and chat with it directly. The full source — one CloudFormation template with the Lambda and UI inline — is in my repository: https://github.com/ImSaMPro/AWS-Weekend-Agent-Challenge (see the Cost-Whisperer/ folder). 

FAQ
Does the agent cost money to run?
Barely. Lambda, its Function URL, and CloudWatch stay in the Free Tier for this usage, and Nova Micro text chat is cents. Fittingly, you can ask the agent itself and it'll explain.
Barely. Lambda, its Function URL, and CloudWatch stay in the Free Tier for this usage, and Nova Micro text chat is cents. Fittingly, you can ask the agent itself and it'll explain.
Why no API Gateway?
A Lambda Function URL gives you a public HTTPS endpoint for free. For a single-purpose agent, API Gateway would be extra cost and complexity with no benefit.
A Lambda Function URL gives you a public HTTPS endpoint for free. For a single-purpose agent, API Gateway would be extra cost and complexity with no benefit.
Is this financial advice?
No — it gives general guidance and says so. For exact numbers it points you to the AWS Pricing Calculator and your Billing console.
No — it gives general guidance and says so. For exact numbers it points you to the AWS Pricing Calculator and your Billing console.
Conclusion
The Cost Whisperer proves that a small agent, built with care for how it feels to use, can be genuinely delightful — and that you can ship a real conversational AI experience on effectively zero infrastructure. Pick one job, give it a personality that fits, handle the sad path kindly, and tear it down with one command when you're done.
Author Bio: Soumyadeep is a cloud enthusiast and builder who loves turning coffee into serverless architecture.
Related Reading:
- Quote Forge: Shipping a Real Serverless App on Two AWS Services
- Weekend Deployment Challenge: Portfolio Site on S3 + CloudFront
- Weekend Showcase Challenge: Daily Haiku Gallery
- Weekend Creative Agent Challenge: Daily Haiku Agent
- Weekend Creative Challenge: Daily Color Palette Extractor
- Building Cloud Skills in the City of Joy: My Life as an AWS Community Builder
- Weekend Annoying Task Challenge: Serverless PingGuard Uptime Monitor
- Weekend Agent Challenge: Morning Brief Agent | Build on AWS
- How I Built an Auto-Changelog Generator for the Kiro Birthday Challenge 2026
- Weekend Productivity Challenge: AI Task Prioritizer
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article