Inspiration
What it does
How we built it
Challenges we ran into
Accomplishments that we're proud of
What we learned
What's next for MetroMuse — music practice on Ring
Inspiration
For amateur musicians, practice is unstructured and progress stalls after the first year. We wanted something that just handled it instead of adding another dashboard. Ring was the obvious place to put it because event triggered by the doorbell is already how this audience works.
What it does
MetroMuse does three things. It builds a plan for coaching daily instrument practice, keeps state so the second week is better than the first, and runs unattended on a schedule. The user only sees the result — plus a short digest — delivered through the doorbell and cameras.
How we built it
The agent is written in Go with Strands Agents SDK and runs on AWS Lambda, calling Amazon Bedrock for the reasoning steps. State lives in OpenSearch Serverless, EventBridge and SES glue the scheduled and event paths together, and the whole stack deploys from a single CDK/CloudFormation app.
Challenges we ran into
The interesting bug was state drift: two tools were each partially right, and the merged answer was wrong in a way neither could see. We ended up with an explicit conflict step. Separately, AWS Lambda concurrency limits bit us once under load, which is what moved the scheduled work onto EventBridge.
Accomplishments that we're proud of
The feedback loop closed properly: the assistant adapts rather than repeating itself, and amateur musicians noticed within a few days. Getting a Strands Agents SDK tool graph to stay coherent under real state was the part we were least sure about and it held up.
What we learned
Agent graphs are cheap to build and expensive to debug — structured traces were the single highest-return thing we added. And designing the evaluation rubric first would have saved us a week of arguing about vibes.
What's next for MetroMuse
Next we want shared use so two people can edit the same plan, a cost estimate driven by live pricing, and a second surface — moving from the doorbell and cameras to a companion view so the same agent is usable in more than one room.
Built With
- amazon-bedrock
- amazon-ring
- aws-lambda
- metromuse
- music
- strands-agents-sdk
Log in or sign up for Devpost to join the conversation.